Java | 编写一个应用程序求1000以内的全部素数,要求每10个输出在一行。(请问我的程序有什么错误?)

这个程序的问题就是不能换行

public class xuexitong3_1 {
    public static void main(String args[]) {
        for(int i=0;i<=1000;i++) {
            int t=0;
            for(int j=1;j<=i;j++) {
                if(i%j==0)
                    t++;
            }
            int sum=0;
            if(t==2) {
                sum++;
                if(sum%10!=0)
                    System.out.print(i+" ");
                else
                    System.out.println(i);
            }
        }
    }
}


因为你把sum放到了for循环内,每次循环的时候,后会将sum初始化为0。


package com.csdn.test;

public class Main {

    public static void main(String args[]) {
        int sum = 0;
        for (int i = 0; i <= 1000; i++) {
            int t = 0;
            for (int j = 1; j <= i; j++) {
                if (i % j == 0)
                    t++;
            }
            if (t == 2) {
                sum++;
                if (sum % 10 != 0)
                    System.out.print(i + " ");
                else
                    System.out.println(i);
            }
        }
    }

}

img

把sum的位置移动到外层for循环上面。