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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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+"为质数");
                        }
                }
        }

}

7 个回复

倒序浏览
程序有点不足的地方,效率降低了一点,因为条件变量每次都进行了计算。
  int  tmp = (i+2)/2;              
for(int j=1;j<tmp ;j++){
                                //计算整数的次数进行++
                                if(i%j==0){
                                        count++;
                                }
                        }
回复 使用道具 举报
kerner 发表于 2015-1-15 10:40
程序有点不足的地方,效率降低了一点,因为条件变量每次都进行了计算。
  int  tmp = (i+2)/2;             ...

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

涨姿势了,真的很不错
回复 使用道具 举报
(i+2)/2  是什么意思啊?  为什么这么做啊?
回复 使用道具 举报
好棒!真的好棒!!!
回复 使用道具 举报
好,非常的好
回复 使用道具 举报
这堆代码不错哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马