/**
* 计算100以内的的素数
* @author Joson.Liu
* 2014.08.26
*/
public class Prime {
public static void main(String args[]){
for(int num=1;num<=100;num++){
if(isPrime(num))
{
System.out.println(num);
}
}
}
/**
* 判断一个数是否为素数
* @param n 待判断整数
* @return 素数返回true 否则返回false
*/
private static boolean isPrime(int n){
if(n==1) //为1则直接返回false
return false;
long sqrtNum=(long)Math.sqrt(n); //得到待判断数年的二次方根
for(int i=2;i<=sqrtNum;i++) //判断是否可以除尽
if(n%i==0){
return false; //返回false
}
return true; //返回true
}
}
亮点两个:
1、运用开方,大大减少了开方次数。
2、把开方提出循环外,减少开方运算次数。