黑马程序员技术交流社区

标题: 判断素数 这段有什么问题 [打印本页]

作者: ninjaes    时间: 2016-3-2 21:35
标题: 判断素数 这段有什么问题
                int count=0;
                ArrayList<Integer>al=new ArrayList<Integer>();
        for(int x=1;x<=100;x++){
                for(int y=1;y<=x;y++){
                        if(x%y==0){
                                count++;
                        }
                        if(count<=2){
                            al.add(x);
                }
               
                }
        }
        System.out.println(al);
        }

作者: ninjaes    时间: 2016-3-2 21:38
为什么最后的结果就是【1,2】 使用的双循环 有什么问题?
作者: 小笼包    时间: 2016-3-2 22:47
循环有问题,首先你的count定义下外面,count的值一直在改变,当i=2的时候,2%2的时候,count已经变为3了,所以不会再有了下面是正确的代码
  1. public static void main(String[] args) {
  2.           
  3.         ArrayList<Integer>al=new ArrayList<Integer>();
  4.         for(int x=1;x<=100;x++){
  5.                 int count=0;
  6.         for(int y=1;y<=x;y++){
  7.                
  8.                 if(x%y==0){
  9.                         count++;
  10.                 }
  11.         }
  12.         if(count<=2){
  13.                 al.add(x);
  14.         }      
  15.          }
  16.         System.out.println(al);
  17.         }
  18. }
复制代码

作者: ninjaes    时间: 2016-3-3 17:06
小笼包 发表于 2016-3-2 22:47
循环有问题,首先你的count定义下外面,count的值一直在改变,当i=2的时候,2%2的时候,count已经变为3了, ...

nice!!!!!!




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