2 qq 39328621 qq_39328621 于 2017.09.07 20:59 提问

java 结果不显示 新人 求解 求解!!

求101-200之间的素数;
并输出个数;
package work;

public class work_3 {

public static void main(String[] args) {
    int i,n,a=0;
    for(i=101;i<=200;i++)
        for(n=2;n<=i;n++)
            {if(i%n<=1e-6)break;
            if(i==n)
                {a++;
                System.out.println(i);}}
    System.out.println(a);

}

}
结果只输出零
图片说明

5个回答

qq_16768503
qq_16768503   2017.09.08 10:51
已采纳

图片说明

qq_40133928
qq_40133928   2017.09.07 21:42

你这算法有问题哦!你要先搞清楚素数的概念。。

qq_40133928
qq_40133928   2017.09.07 21:52

public static void main(String[] args) {

        for (int n = 100; n <= 200; n++) {
            // 判断n是否是质数
            int m = (int) Math.sqrt(n);
            int i = 2;
            for (; i <= m; i++) {
                if (n % i == 0)
                    break;
            }
            if (i > m) {
                System.out.print(n + " ");
                if (++numOfPrime % 10 == 0)
                    System.out.println();
            }
        }
        System.out.println("\n共有" + numOfPrime + "个质数");
    }
linsa_pursuer
linsa_pursuer   2017.09.07 23:42

首先,新手注意个小问题哦,for后面的大括号请写清楚,素数除1跟本身以外的数,余数都不等于0。我也是新手,比你好一点,我博客里面都是新手的问题,最近在学习。

caiwa2008
caiwa2008   2017.09.08 01:19

上面的那个if(i==n)错了

Csdn user default icon
上传中...
上传图片
插入图片