我希望这个Java程序能够传输10001个素数,但它莫名其妙地决定将16标记为素数.
这里的算法只是保持素数的运行计数,并检查每个新数字以查看它是否可被任何小于它的素数整除.如果不是,则将其添加到数组primes []中,该数字显示在控制台上,然后该过程继续,直到primes[ ]满.
public static void main(String[] args){
int[] primes = new int[10001];
int primeCount = 1;
int testNumber = 3;
primes[0] = 2;
while(primeCount < 10001){
for (int i = 0; i < primeCount; i++){
if (testNumber % primes[i] == 0){
i = 0;
testNumber++;
}
}
primes[primeCount] = testNumber;
System.out.println(testNumber);
primeCount++;
testNumber++;
}
}
Run Code Online (Sandbox Code Playgroud)
控制台读数:
3 5 7 11 13 16 17 19 . . .
除了16 ......任何想法之外,其他一切看起来都是有序的吗?
| 归档时间: |
|
| 查看次数: |
1053 次 |
| 最近记录: |