/*
* 打印出100以内的质数,一行显示5个,
* (质数是只能被1跟自身整除的数,1不是质数)
*/
public class Test11 {
static boolean isPrime(int num){
//两个较小数另外处理
if(num ==2|| num==3 )
return true ;
//不在6的倍数两侧的一定不是质数
if(num %6!= 1&&num %6!= 5)
return false ;
double tmp =Math.sqrt( num);
//在6的倍数两侧的也可能不是质数
for(int i= 5;i <=tmp; i+=6 )
if(num %i== 0||num %(i+ 2)==0 )
return false;
//排除所有,剩余的是质数
return true ;
}
public static void main(String[] args) {
int count = 5;
for (int i = 2; i <= 100; i++) {
if (count == 0) {
count = 5;
System.out.println();
}
if(isPrime(i)){
count--;
System.out.print(i + " ");
}
}
}
}
运行结果: