我试图做一个while循环遍历每个可能的长数,并将它遇到的每个素数添加到素数组中。由于while循环应该运行直到素数的长度为200,我期望primes数组填充前200个素数。相反,我得到全零。我已经成功地获得了20行,每行10个字符,它们之间有一个空格。我怎么能让他们成为实际的素数呢?如何用while循环分配数组值?
public class PrimeGenerator {
public static void main(String[] args) {
long primes[] = new long[200];
while (primes.length > 200){
for(long y = 2; y < Long.MAX_VALUE; y++) {
int primeCounter = 0;
if (isPrime(y) == true){
primes[primeCounter] = y;
primeCounter++;
}
}
}
for (int i = 0; i < 20; i++) {
int primeCounter = 0;
for(int p = 0; p < 10; p++) {
System.out.print(primes[primeCounter] + " ");
primeCounter++;
}
System.out.println();
}
}
public static boolean isPrime(long number) {
if (number % 2 == 0)
return false;
if (number == 2)
return true;
for(int x = 3; x*x <= number; x+=2) {
if (number%x == 0)
return false;
}
return true;
}
}
我仍然得到全零。 –
@ScaryWombat这也无济于事,因为'primes.length'保持不变(200)。 – Eran