java - 计算最后一列素数

标签 java loops for-loop while-loop

我使用以下代码获取素数:

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/

相关文章:

java - cache()/persist() 的 apache-spark 内存消耗

java - Bjacc/j if 和 while 定义

c - c中的无限循环问题

计算给定单词输入中元音的数量

java - java中的函数比较 double 值以获得最大值

java - cxf Web 服务不更新

c - 实现麦克劳林级数但得到错误的答案

iOS:在 for 循环中更新 NSMutableArray 的对象

javascript - JSHint 考虑一个 for-in 变量 'bad' 。这是什么意思?

java - 基本的 Java 数组和 For 循环