素数的判断

public class Test2 {
/*题目:判断重0开始到任何数之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/
public static void main(String[] args) {
//根据题意知道判断条件为:n%2到Math.sqrt(n)到j!=0为素数
//输入需要判断的范围
Scanner s = new Scanner(System.in);
int number = s.nextInt();
//定义最后的素数的总数
int sum=0;
//设置判断条件
boolean flag=true;
//循环获取范围内的所有数字
for (int i = 1; i <=number; i++) {
//如果有数字取余为0,就跳出循环后,新循环重置判断条件
flag=true;
for (int j = 2; j <=Math.sqrt(number); j++) {
//判断如果i对2到Math.sqrt(n)取余不为0,sum就加1;
if (i%j==0) {
flag=false;
//终止这一层循环
break;
}
}
//如果不存在取余为0的数,就加1,并将flag判断条件重置
if (flag) {
sum++;
flag=true;
}
}
System.out.println(sum);
}
}

注:判断好判断条件就好。可以优化一下将for (int i = 1; i <=number; i++) 改为for (int i = 1; i <=number; i+=2) 因为偶数必然不是素数。

原文地址:https://www.cnblogs.com/plas/p/9880332.html