黑马程序员技术交流社区

标题: 求1-- 100素数 [打印本页]

作者: 253663946    时间: 2016-4-4 12:00
标题: 求1-- 100素数
相对高效的代码是什么啊?
作者: 452296824    时间: 2016-4-4 13:00
  1. class Work71 {
  2.         public static void main(String[] args) {
  3.                 int x = 0;                    
  4.                 int y = 0;
  5.                 int a = 0;            
  6.                 for ( x = 2;x <=100 ;x++ ) {          //1 - 100的数
  7.                                 int c = 0;                    //计数 初始化
  8.                         for (y = 1;y <=x ;y++ ) {         //
  9.                          if (x % y==0) {               
  10.                                          c++;                  //记录能被 x整除的个数
  11.                          }
  12.                                  if (c==2&&y==x) {        //   输出素数   
  13.                                          System.out.print(x+"\t");
  14.                                          a++;           //记录素数的个数
  15.                                  }
  16.                                  if (a % 5==0&&y==x) {    //每满5个素数就在第五个素数后面转行
  17.                                                  System.out.println();
  18.                                  }
  19.                         }
  20.                 }
  21.                  System.out.println(a);
  22.         }
  23. }
复制代码

作者: skykiah    时间: 2016-4-4 13:22
原来是这样做的呀
作者: 【长沙】梁黑马    时间: 2016-4-4 13:41
还有其他的编程方式!
作者: Lihongjie    时间: 2016-4-4 13:46
int count = 0;
                 for(int i=2;i<100;i++) {   
                         int j = 2;
                         while(true) {
                                if(i==j) { //等于本身
                                        System.out.print(i + "\t");
                                        count++;
                                        if(count%5==0) {
                                                System.out.println();
                                        }
                                        break;
                                }else if(i%j==0) {   //能被小于自己的数整除,j从2开始递增
                                        break;
                                }
                                j++; //依次递增被除数
                        }
                 }
作者: 253663946    时间: 2016-4-4 17:10
Lihongjie 发表于 2016-4-4 13:46
int count = 0;
                 for(int i=2;i

哥们,这个代码好熟悉啊!这个不是高效的吧?
作者: 253663946    时间: 2016-4-4 17:13
【长沙】梁黑马 发表于 2016-4-4 13:41
还有其他的编程方式!

有,有蛮多的,就是不懂哪个是高效的!
作者: 253663946    时间: 2016-4-4 17:14
skykiah 发表于 2016-4-4 13:22
原来是这样做的呀

我有一个方法,他们说效率不高!




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