黑马程序员技术交流社区
标题:
小程序:打印1~1000之间的素数
[打印本页]
作者:
黄文昭
时间:
2015-4-30 12:27
标题:
小程序:打印1~1000之间的素数
package cn.zhao01;
/*
* 打印1~1000之间的素数:
* 思路:
* 1、素数:一个大于1的自然数,除了1与其本身之外 ,不能被任何其他数整除。
* 2、返回值类型是boolean型
* 3、有一个参数,在1~1000之间,int类型
*
* 步骤:
* 1、定义一个变量从1~1000进行循环,获得每一个自然数i
* 2、可以定义一个方法用来打印素数,定义另一个变量从2开始到i的平方根处依次整除i,
* 若能被整除,则i是合数,否则i为素数;
* 3、 打印每一个素数,并进行统计。
*/
public class PrimePrint {
public static void main(String[] args) {
int count = 0;
//统计素数个数
for(int i=1;i<1000;i++){
if(isPrime(i)){
count++;
System.out.print(i+" ");
if(count%10==0){
System.out.println();//每打印10个数, 就换行
}
}
}
System.out.println();
System.out.println("在"+1+"和"+1000+"之间共有"+count+"个素数");
}
//判断素数
private static boolean isPrime(int n){
boolean flag = true;
if(n==1)
flag = false;//1既不是素数也不是合数。
else{
for(int i=2;i<=Math.sqrt(n);i++){
if((n%i)==0 || n==1){
flag = false;//从2开始判断n能否被其他自然数整除
break;
}
else
flag = true;
}
}
return flag;
}
}
作者:
1017161726
时间:
2015-4-30 13:16
写的不错。这道题我也做过,但只是打印了一行,没有加换行。而且我是只在主函数中写的调用方法。其他的全部封装到方法中的。
我只是用自然数除以比他小的所有数,然后如果不存在能整除的数就是素数。没有用到Math中的方法。
作者:
gan
时间:
2015-4-30 14:38
与用C语言设计的思路方法差不多
作者:
只吃饭不洗碗
时间:
2015-4-30 15:20
一到定义标记的时候,我就觉得很高级~
作者:
知来者之可追
时间:
2015-4-30 20:37
学习了。。。。
作者:
魔心邪
时间:
2015-5-1 00:44
与用C语言设计的思路方法差不多写的不错。这道题我也做过
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2