黑马程序员技术交流社区
标题:
基础题目里面的打印所有的三维质数
[打印本页]
作者:
向天宣战
时间:
2015-6-10 21:50
标题:
基础题目里面的打印所有的三维质数
/**
* 编程打印所有的3位质数,质数特点:只能被1和其本身整除
*
* @author zyy
*
*/
public class Test5 {
public static void main(String[] args) {
//1.打印所有三位质数----》100-999之间
for(int i = 100;i<=999;i++){
//2.只能被1和本身整除
boolean flag = true;
int p= 2;
for(;p<=Math.sqrt(i);p++){
if(i%p==0){
flag = false;
continue;
}
}
if(p>Math.sqrt(i)&&flag){
System.out.println(i);
}
}
}
}
复制代码
作者:
许庭洲
时间:
2015-6-11 13:38
值得学习ing!
作者:
嘎路的米
时间:
2015-6-11 17:05
我不明白p<=Math.sqrt(i),为什么要sqrt(i)
作者:
向天宣战
时间:
2015-6-11 18:59
嘎路的米 发表于 2015-6-11 17:05
我不明白p
这个题目你可以再看看谭浩强的C语言,那么做的原因是为了提高效率,原本应该比较2~(n-1),但是在数学上还有另外一条公式让你优化一下只需要比较2~n的平方根,这个平方根也是需要比较的,比如9只需要比较2和3就可以去顶9是不是质数
作者:
candy_xue
时间:
2015-6-11 20:56
模模糊糊学过 又勾起记忆了 谢谢楼主
作者:
liu100chao
时间:
2015-6-11 21:22
这是我的基础测试题!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2