1.计算一百万以内的所有的质数的个数
//11.计算一百万以内的所有的质数的个数 //质数:只能被1和它本身整除的自然数 public class Sanyuan { public static void main(String[] args) { boolean isFlag = true; //标识i是否能被除尽,一旦除尽,修改其值 long startTime = System.currentTimeMillis(); //获取当前时间距离1970:01:01的毫秒 int count = 0; //记录质数的个数 for(int j=2;j<=1000000;j++){ //遍历一百万以内的值 for(int i=2;i<=Math.sqrt(j);i++){ //优化,使用根号j节省不必要的计算 if(j%i == 0){ //j能否被i除 isFlag = false; break; //优化:只对非质数的有效 } } if (isFlag==true){ count++; } isFlag = true; //得到一个质数后修改为true,继续执行外层循环 } long endTime = System.currentTimeMillis(); System.out.println("所耗时间:"+(endTime-startTime)); System.out.println("总质数为:"+count); } }
原文:https://www.cnblogs.com/king2/p/14259092.html