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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /**
  2. * 编程打印所有的3位质数,质数特点:只能被1和其本身整除
  3. *
  4. * @author zyy
  5. *
  6. */
  7. public class Test5 {
  8.         public static void main(String[] args) {

  9.                 //1.打印所有三位质数----》100-999之间
  10.                 for(int i = 100;i<=999;i++){
  11.                         //2.只能被1和本身整除
  12.                         boolean flag = true;
  13.                         int  p= 2;
  14.                         for(;p<=Math.sqrt(i);p++){
  15.                                 if(i%p==0){
  16.                                         flag = false;
  17.                                         continue;
  18.                                 }
  19.                         }
  20.                         if(p>Math.sqrt(i)&&flag){
  21.                                 System.out.println(i);
  22.                         }
  23.                 }
  24.                
  25.         }
  26.        
  27.        
  28. }
复制代码


5 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
我不明白p<=Math.sqrt(i),为什么要sqrt(i)
回复 使用道具 举报

这个题目你可以再看看谭浩强的C语言,那么做的原因是为了提高效率,原本应该比较2~(n-1),但是在数学上还有另外一条公式让你优化一下只需要比较2~n的平方根,这个平方根也是需要比较的,比如9只需要比较2和3就可以去顶9是不是质数
回复 使用道具 举报
模模糊糊学过  又勾起记忆了  谢谢楼主
回复 使用道具 举报
这是我的基础测试题!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马