A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Demo_质数 {

        /**
         * @param args
         * 2.分析以下需求,并用代码实现:
        (1)打印1-100之间的所有素数及个数
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
        (4)如:2 3 5 7 11
         */
//        分析:1.质数不是偶数,用for循环 里面做if判断
//        2.定义一个计数器count
//        3.如果这数除本身==0 且%本身为0时为质数,则count ++
        public static void main(String[] args) {
                int count =0;//定义一个计算器
                for (int i = 2; i <=100; i++) {
                        boolean b = true;  
                        for (int j = 2; j <i; j++) {
                                if (i%j==0){  
                                        b = false;       
                                        break;       
                                }
                        }
                                if(b){                                 
                                        count++;
                                        System.out.print(i+" ");
                                if (count%5==0) {  //输出5个就换行
                                        System.out.println();
                                }
                        }
                }
                System.out.println(count);
        }
}

4 个回复

倒序浏览
是对的,你这代码怎么看着和参考答案类似
回复 使用道具 举报
运行一下就知道结果了
回复 使用道具 举报
看不懂啊,
回复 使用道具 举报
本帖最后由 yaolv7 于 2016-4-16 23:44 编辑

哥们,你理解错了,这代码只是你刚好蒙对了,但不是你写的思路
【质数不是偶数...】看着很有道理,让 "2" 情何以堪.....
【如果这数除本身==0 且%本身为0时为质数,则count ++】   这儿思路有问题

for (int j = 2; j <i; j++)   你把内for循环中的 j<i  改成 j <= i  ,这样才能除到本身,就是
for (int j = 2; j <=  i; j++)  ,但是换成这样的话,你试试看还有没有输出??


【这数除本身==0】 这句话不会实现,任何整数除以本身都不会等于0,

我说话比较直,别介意哈
哥们,加油,慢慢学
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马