黑马程序员技术交流社区

标题: 编程打印所有的3位质数,质数特点:只能被1和其本身整除 [打印本页]

作者: 没胡子的小眼睛    时间: 2015-1-15 09:57
标题: 编程打印所有的3位质数,质数特点:只能被1和其本身整除
public class Test6 {

        /**
         * 编程打印所有的3位质数,质数特点:只能被1和其本身整除
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                //三位的质数是从100开始 999结束
                for(int i=100;i<1000;i++){
                       
                        int count=0;
                        // 将 i 依次除以 1 到 [(i + 2)/2]  
                        for(int j=1;j<(i+2)/2;j++){
                                //计算整数的次数进行++
                                if(i%j==0){
                                        count++;
                                }
                        }
                        //当累计整数的count 大于2时说明得到了次数累加成功
                        if(count<2){
                               
                                System.out.println(i+"为质数");
                        }
                }
        }

}

作者: kerner    时间: 2015-1-15 10:40
程序有点不足的地方,效率降低了一点,因为条件变量每次都进行了计算。
  int  tmp = (i+2)/2;              
for(int j=1;j<tmp ;j++){
                                //计算整数的次数进行++
                                if(i%j==0){
                                        count++;
                                }
                        }
作者: 没胡子的小眼睛    时间: 2015-1-15 10:44
kerner 发表于 2015-1-15 10:40
程序有点不足的地方,效率降低了一点,因为条件变量每次都进行了计算。
  int  tmp = (i+2)/2;             ...

谢谢 学长
  谢谢你的指点 明白了 可以单独提出来分给一个变量 这样每次循环的效率会大大的提高
作者: asinzuo    时间: 2015-6-28 21:15
kerner 发表于 2015-1-15 10:40
程序有点不足的地方,效率降低了一点,因为条件变量每次都进行了计算。
  int  tmp = (i+2)/2;             ...

涨姿势了,真的很不错
作者: 崔判官    时间: 2015-11-5 17:09
(i+2)/2  是什么意思啊?  为什么这么做啊?

作者: 一大把手    时间: 2015-11-14 20:22
好棒!真的好棒!!!
作者: xiaojunru    时间: 2016-3-12 15:03
好,非常的好
作者: BackingAlongRay    时间: 2016-4-9 19:39
这堆代码不错哦




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