1.创建1个打印质数、质数个数 的方法:
import java.beans.beancontext.BeanContext;
/**
* 判断1-1000之间有多少个素数,并输出所有素数。
*
* 素数=质数 1个大于1的自然数,除了1和它自身外,不能被其他自然数整除。【如:2、3、7、11】
* 否则称为 合数。
*
* 不能被其他自然数整除=一旦被整除 不是质数
* 6 除以 1 2345 6
* 11 1 2345678910 11
*
* 1个数不可能被比自身平方根大的整数 整除
*/
public class CountPnum {
public static void main(String[] args) {
long begin = System.currentTimeMillis();
myCount(1000);
System.out.println("运行耗时"+(System.currentTimeMillis()-begin));
}
/**
* @param endNum 1 ~ endNum之间 包括endNum
*/
public static void myCount(int endNum){
int num=2;//数字 1排除 在2 ~ endNum
int sum=0;//素数个数
while(num<=endNum){//当>1000跳出循环
boolean isPn=true;//每个数 是素数
//除数:
// for (int i = 2; i < num-1; i++) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if(num%i==0){//一旦被整除 = 不是素数
isPn=false;
break;//跳出当前 继续除数的循环 对比下一个数
}
}
if(isPn){
sum++;
System.out.println(num+"是素数");
}// else{
// System.out.println(num+"是合数");
// }
num++;
}
//以上所有数循环完毕
System.out.println("素数总个数为"+sum);
}
}
2.创建 1个判断是否为质数 的方法:
public class CountPnum2 {
public static void main(String[] args) {
int sum = 0;//质数总个数
for (int i = 2; i <= 1000; i++) {
if(pd(i)) {
System.out.println(i);
sum++;
}
}
System.out.println("素数一共"+sum+"个");
}
/**
* 判断是否为质数
* @param n
* @return boolean
*/
public static boolean pd(int n){
for(int i=2;i<=Math.sqrt(n);i++){
if(n%i == 0)
return false;
}
return true;
}
}