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;
}
}
|
|