黑马程序员技术交流社区

标题: 1-100之间的素数 [打印本页]

作者: IT虫    时间: 2016-11-29 11:50
标题: 1-100之间的素数
求1-100之间的素数并输出,网上看了看,自己也做了,一个是不懂再就是程序出错,求解答一下
作者: kevin0    时间: 2016-11-29 12:36
代码贴出来看一下

作者: IT虫    时间: 2016-11-29 13:07
kevin0 发表于 2016-11-29 12:36
代码贴出来看一下

已经找大神解决了,谢谢了

作者: 一蓑烟雨任平生@    时间: 2016-11-29 14:35
是不是两层循环可以呢?外循环x为2到100,内循环y为2到x,用外循环当前的数依次对内循环的数取模,不为0就打印出来


作者: IT虫    时间: 2016-11-29 17:32
一蓑烟雨任平生@ 发表于 2016-11-29 14:35
是不是两层循环可以呢?外循环x为2到100,内循环y为2到x,用外循环当前的数依次对内循环的数取模,不为0就 ...

现在还没学到你发的自定义方法时候呢!

作者: 一蓑烟雨任平生@    时间: 2016-11-29 18:14
IT虫 发表于 2016-11-29 17:32
现在还没学到你发的自定义方法时候呢!

我看的比较早也可以直接写到主函数里

作者: IT虫    时间: 2016-11-29 22:05
一蓑烟雨任平生@ 发表于 2016-11-29 18:14
我看的比较早也可以直接写到主函数里

哈哈,可以可以!

作者: 201314    时间: 2016-11-29 23:16
好好学习,天天向上。
作者: 袁志娜    时间: 2016-11-29 23:30

作者: xyy222    时间: 2016-11-29 23:35
以下提供两种解法个思路

/*
* 求1-100中质数的和
*
* 2 3 5 7 11 13 17 19 23 29 31
*
*
*/
public class Demo2 {
        public static void main(String[] args) {
                method1();
                method2();
                // 理解
                method3();
        }

        private static void method3() {
                int count = 0;
                for (int x = 2; x <= 100; x++) {
                        int y = 2;
                        while (x % y != 0) {
                                y++;
                        }
                        if (x == y) {
                                System.out.println(x);
                                count++;
                        }
                }

                System.out.println("1-100中的质数的个数是:" + count);
        }

        private static void method2() {
                int count = 0;
                for (int x = 2; x <= 100; x++) {
                        int count1 = 0;
                        for (int y = 2; y <= x; y++) {
                                if (x % y == 0) {
                                        count1++;
                                }
                        }
                        if (count1 > 1) {
                                System.out.println(x);
                                count++;
                        }
                }

                System.out.println("1-100中的合数的个数是:" + count);

        }

        private static void method1() {
                // 1不是素数,所以直接从2开始循环
                int count = 0;
                for (int x = 2; x <= 100; x++) {
                        int count1 = 0;
                        for (int y = 2; y <= x; y++) {
                                if (x % y == 0) {
                                        count1++;
                                }
                        }
                        if (count1 == 1) {
                                System.out.println(x);
                                count++;
                        }
                }

                System.out.println("1-100中的质数的个数是:" + count);
        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2