我試圖做一個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