其实,对素数的定义进行进一步的分析,要判断数N是否为素数,不需要用N一直除到N-1才能确认,而只需要除到N的平方根即可。
package com.js.math;
import java.util.Scanner;
/**
* 素数
* 要求N不是素数,可用N依次除以2~N-1之间的数,若某个数能被整除,则表示N不是素数
* 其实除到根号下N即可,减少循环次数
* @author js
*
*/
public class PrimeNum2 {
public static void main(String[] args) {
int boundary;
int n;
System.out.println("请输入查找范围...");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
boundary = scanner.nextInt();
for(n=1;n<=boundary;n++){
if(PrimeNum(n)==1&&n!=1){
System.out.println("找到一个素数......"+n);
}
}
}
}
public static int PrimeNum(int i){
int j,flag=1;
for(j=2;j<Math.sqrt(i);j++){
if(i%j==0){
flag=0;
break;
}
}
return flag;
}
}