质数:素数,只能被1和它本身整除的自然数;–》从2开始,到这个数-1结束为止,都不能被这个数本身整除
运行结果如下
优化后运行结果如下
方法一:
主要代码
boolean isFlag=true;//标识i是否被j除尽,一旦除尽,修改其值
for(int i=2;i<=100;i++){//遍历100以内的自然数
for(int j=2;j<i;j++){//j:被i去除
if(i%j==0){//i被j除尽
isFlag=false;
}
}
if(isFlag==true){
System.out.print(i+" ");
}
//重置isFlag
isFlag=true;
}
方法二:
优化提高效率
long start=System.currentTimeMillis();//获取当前时间距离1970-01-01 00:00:00的毫秒数
boolean isFlag=true;//标识i是否被j除尽,一旦除尽,修改其值
int count=0;//记录质数的个数
for(int i=2;i<=100;i++){//遍历100以内的自然数
for(int j=2;j<=Math.sqrt(i);j++){//j:被i去除//优化二:对本身是质数的自然数是有效的
if(i%j==0){//i被j除尽
isFlag=false;
break;//优化一:只对本身非质数的自然数是有效的。
}
}
if(isFlag==true){
System.out.print(i+" ");
count++;
}
//重置isFlag
isFlag=true;
}
long end=System.currentTimeMillis();//获取当前时间距离1970-01-01 00:00:00的毫秒数
System.out.println();
System.out.println("质数的个数为:"+count);
System.out.println("所花费的时间:"+(end-start));