素数: 一个大于1的且只能被1和它本身整除的自然数叫素数 。
我们认为计算机判断一个数是否是素数过程 :例如11
i=2
2*3 2*3 2*5
i=3
3*2 3*3
i=4
4*2
i=5
5*2
i=6( 超过11的大小了)
6*2
这里我们可以很简单的写出一个穷举法的程序
int i=2;
while((n%i!=0)&&i
i++;
很明显上面这个方法效率很低
我们可以找出规律 当i=3 时 3*3 就是一个临界值 也就是i*i 也就是 i*i
代码贴出
package judgePrim;
public class prime {
public static void judgePrime(int n){
boolean flag = false;
int i = 2;
while((n % i != 0) && i * i < n){
i ++;
}
if(i * i > n){
System.out.println("是素数");
}
else{
System.out.println("非素数");
}
}
public static void main(String args[]){
judgePrime(11);
}
}