作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我了解,如果 P 是素数,则 a^(p-1)-1 mod p =1
我想要的是打印两个整数之间的每个素数我写的是:
public static void main(String[] args) {
Scanner r = new Scanner(System.in);
int x = Integer.parseInt(r.nextLine());
for (int i = 0; i < x; i++) {
String s = r.nextLine();
BigInteger n = new BigInteger(s.split(" ")[0]);
BigInteger m = new BigInteger(s.split(" ")[1]);
for (BigInteger j = n; j.compareTo(m) <= 0; j.add(BigInteger.ONE)) {
if (isPrime(j)) {
System.out.println(j);
}
}
}
}
private static boolean isPrime(BigInteger num) {
BigInteger a = num.subtract(num.divide(new BigInteger("2")));
a = a.modPow(num.subtract(BigInteger.ONE), num);
if (a == BigInteger.ONE) {
return true;
}
return false;
}
但它一直在运行,并没有停止。我做错了什么?
最佳答案
BigInteger
是不可变的。您需要将 add
的结果分配回 j
。
for (BigInteger j = n; j.compareTo(m) <= 0; j = j.add(BigInteger.ONE)) {
关于java - 费马关于素数Java的小定理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28033561/
我必须计算持卡人的总计费金额,以使用卡进入 parking 场。我的费率结构如下所示。 parking 场的每个区域都有这些价格的优先列表。 public partial class HourlyPr
我是一名优秀的程序员,十分优秀!