我试图解决这个代码,但实际上我不能...我没有任何结果...如果somembody可以帮助,这个代码工作,但没有结果! :
public class Primenumber {
public static void main(String[] args) {
int n = 10000;
long sum = 0;
loop:
for (int i = 2; i <= n; i++) {
for (int j = 2; j < n; j++) {
for (int k = j; k < n; k++) {
if (i == j * k) {
continue loop;
}
}
}
sum += i;
}
System.out.println("该整数之内的所有素数之和是:" + sum);
}
}
答案 0 :(得分:2)
不详细介绍先进的筛分算法:
sqrt(i)
的除数。 (如果是整数j>sqrt(i)
除i
之外,还存在另一个整数k<sqrt(i)
,它也会i
分开。)i
,则2
除i
,你之前已经测试过了) i
的早期值是素数)。如果整数j
除以i
,则j
为素数,或j=p*m
(其中p
为素数,p
除以{{1} }})。i
是否(i%j==0
除以i
的余数为零)。答案 1 :(得分:0)
此代码循环约n^3
次迭代(少一点)。难怪当你通过一个大的n
时它不会结束。
您可以通过更改
“使其正常工作”n = 10000;
到
n = 1000;
然后结果是
该整数之内的所有素数之和是:76127
简而言之,您的代码似乎运行正常,您只需要为大n
寻找更有效的算法。