gpt4 book ai didi

java - 使用 Java 的 BigInteger 可能素数

转载 作者:行者123 更新时间:2023-12-01 16:41:50 25 4
gpt4 key购买 nike

我想打印两个数字之间的所有素数。这是我的代码:

package sphere;

import java.math.BigInteger;
import java.io.*;

class PrimeTest2 {
public static void main(String args[]) throws java.lang.Exception {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String s = r.readLine();
String [] splitted = s.split(" ");
BigInteger lower = new BigInteger(splitted[0]);
BigInteger upper = new BigInteger(splitted[1]);
int lowerAsInt = Integer.parseInt(splitted[0]);
int upperAsInt = Integer.parseInt(splitted[1]);
BigInteger intermediate = lower;

for (int i=lowerAsInt; i<upperAsInt; i++) {
intermediate = intermediate.nextProbablePrime();
System.out.println(intermediate);
}
}
}

当使用 1 10 运行时,输出为:

2
3
5
7
11
13
17
19
23

为什么七点不停止?

最佳答案

因为你的程序说运行时间(1到9)不会低于10。你可能想要的不是你的循环:

BigIntegerupper = BigInteger.valueOf(upperAsInt);
while (intermediate.compareTo(upper) <= 0) {
System.out.println(intermediate);
intermediate = intermediate.nextProbablePrime();
}

看出区别了吗?你的从 1 开始,到 9 停止(小于 10),在每次迭代时打印一个数字。当数字大于上限时,上述过程停止。

关于java - 使用 Java 的 BigInteger 可能素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1081133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com