我使用以下代码获取素数:
public static void printPrimeNumbers(int numberOfPrimes){
final int NUMBER_OF_PRIMES_PER_LINE = 10;
int count = 0;
int number = 2;
while (count < numberOfPrimes){
//print the prime numbers and increase count
if (isPrime(number)){
count++;
if (count % NUMBER_OF_PRIMES_PER_LINE == 0){
System.out.printf("%-5s\n", number);
}else {
System.out.printf("%-5s", number);
}
}
number++;
}
}
private static boolean isPrime(int number) {
for (int divisor = 2; divisor <= number / 2 ; divisor++) {
if (number % divisor == 0){ // if true number is not prime
return false;
}
}
return true;
}
效果很好,我需要获得最后一列素数的总和,假设我插入 printPrimeNumbers(50)
将会有 5 行,列中有 5 个数字,我想获得最后一列的总和,如何实现?
最佳答案
您需要做的是包含一个新变量来保存总和的值。对于该变量,您需要在每列末尾添加数字的值。确定转到新行的位置将告诉您何时添加到新的 sum 变量。我已经编写了您需要添加变量/值的位置,但将这些值分配给 ? ,您需要将其替换为实际代码才能使其工作。
public static void printPrimeNumbers(int numberOfPrimes){
final int NUMBER_OF_PRIMES_PER_LINE = 10;
int count = 0;
int number = 2;
int sum = ?;
while (count < numberOfPrimes){
//print the prime numbers and increase count
if (isPrime(number)){
count++;
if (count % NUMBER_OF_PRIMES_PER_LINE == 0){
System.out.printf("%-5s\n", number);
sum += ?;
}else {
System.out.printf("%-5s", number);
}
}
number++;
}
}
private static boolean isPrime(int number) {
for (int divisor = 2; divisor <= number / 2 ; divisor++) {
if (number % divisor == 0){ // if true number is not prime
return false;
}
}
return true;
}
关于java - 计算最后一列素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46493599/