Java 实现 1-100内的质数求和,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

    public static void main(String[] args) {
        //质数的和,初始值是最小的质数
        int sum = 2;
        //求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
        for (int i = 3; i < 100; i++) {
            for (int j = 2; j < i; j++) {
                //非质数,跳出
                if (i % j == 0) {
                    break;
                } else {
                    //判断是否是除了本身之外最大的数,如果没有找到被整除的数,证明是质数
                    if (j == (i - 1)) {
                        sum += i;
                    }
                }
            }
        }
        System.out.println(sum);
    }
} 

你题目的解答代码如下:

    public static void main(String[] args) {
        //质数的和,初始值是最小的质数
        int sum = 2,f;
        //求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
        for (int i = 3; i < 100; i++) {
            f = 0;
            for (int j = 2; j < i; j++) {
                //非质数,跳出
                if (i % j == 0) {
                    f = 1;
                    break;
                }
            }
            //判断是否是除了本身之外最大的数,如果没有找到被整除的数,证明是质数
            if (f == 0) {
                sum += i;
            }
        }
        System.out.println(sum);
    }

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

判断放在循环外。


    public static void main(String[] args) {
        //质数的和,初始值是最小的质数
        int sum = 2;
        //求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
        for (int i = 3; i < 100; i++) {
            int j = 2;
            for (; j < i; j++) {
                //非质数,跳出
                if (i % j == 0) {
                    break;
                }
            }
            //判断是否是除了本身之外最大的数,如果没有找到被整除的数,证明是质数
                    if (j == (i - 1)) {
                        sum += i;
                    }
        }
        System.out.println(sum);
    }
} 

else不需要,而且逻辑不对,代码修改如下:

public static void main(String[] args) {
    //质数的和,初始值是最小的质数
    int sum = 2;
    //求1-100的质数的和,质数除了1和本身外不能被其他数整除,1不是质数
    for (int i = 3; i < 100; i++) {
        for (int j = 2; j < i; j++) {
            //非质数,跳出
            if (i % j == 0) {
                break;
            } 
        }
        //if语句放在这里
        if (j == (i - 1)) {
            sum += i;
        }
    }
    System.out.println(sum);
}