黑马程序员技术交流社区

标题: 自己研究了求素数的三种方法: 求各位大神批评斧正。 [打印本页]

作者: 踽踽行者    时间: 2015-5-26 00:11
标题: 自己研究了求素数的三种方法: 求各位大神批评斧正。
本帖最后由 踽踽行者 于 2015-5-26 00:34 编辑

奋战了几个小时  终于搞出来第一种方法:
class ForForDemo
  {   
          public static void main(String[] args){
                  
          /*for (int a=1;a<=100 ;a++ ){
                  int count = 0;
                  for (int b=1;b<=a ;b++ )
                  {
                        if(a%b==0){
                                count++;
                        }
                  }
                  if(count==2)
                          {
                                System.out.println(a);
                          }                  
                 第二种方法              
                 int sum=0;                       
                for (int a=2;a<=100 ;a++ )
                {
                        boolean i = true;
                        for (int b=2;b<a ;b++ )
                        {
                                if (a%b==0)
                                {
                                        i=false;
                                        break;
                                }
                        }
                        if (i==true)
                        {
                                System.out.println(a);
                                sum+=a;
                        }
                }
                System.out.print("sum="+sum);
          }
  }
第三种方法:
        for(int x=2;x<=100;x++){
                                int count=0;
                        for(int y=1;y<=x;y++){
                                if((x%y)!=0){
                        }

                        if(count==(x-2)){
                                                count++;
                                }               
                        System.out.println(x);
                        }
                }
               


作者: 踽踽行者    时间: 2015-5-26 00:13
:)自顶一下
作者: 踽踽行者    时间: 2015-5-26 00:35
再顶一下::loveliness:
作者: 汤姆大叔    时间: 2015-5-26 00:37
虽然有点乱,但是还是想法还是特别的独特。
作者: 君子无醉    时间: 2015-5-26 05:57
for(int x=2;x<=100;x++){
for(int y=2;y<=x;y++){
   if(x%y==0&&x!=y){
    break;
}   //剔除不必要的比较,比如当x=80时,第一次内循环y=2的时候,就直接把x给剔除出去,没必要再比较78次,节省资源
  if(x%y==0&&x=y){
  System.out.println(x);//将得到的素数输出出来
}
}
}

我感觉这样比较简单....:lol
作者: 踽踽行者    时间: 2015-5-26 21:25
君子无醉 发表于 2015-5-26 05:57
for(int x=2;x

恩,牛逼。。
作者: niuapp    时间: 2015-5-26 21:34
恩,真细心
作者: 张清华    时间: 2015-5-26 21:39
学习了
作者: wwb1105    时间: 2015-5-26 21:42
学习了  好好加油!
作者: 791180016    时间: 2015-5-26 21:53
学习学习!!
作者: 快乐Anne    时间: 2015-5-26 21:55
第三种方法是不是丢东西了,感觉代码不对呢
作者: Lucus    时间: 2015-5-26 23:21
学习学习,总结的挺好!!!
作者: EggEgg    时间: 2015-5-26 23:40
每日一顶,加油·~
作者: 尹娟娟    时间: 2015-6-22 17:55
   好厉害。。




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