一直都没有耐心研究素数,总觉得无聊或者什么的,今天静下心来研究了一下它!
素数:不能被1和它本身的数整除的数
判断:仅需判断从2 -- sqrt(n)之间闭区间(例如25必须判断2-5不能漏掉5)的数有没有可以整除此数即可
注意:偶数不可能为素数,故在使用for循环时是用递增(减)2的方式循环
2是偶数里唯一的素数
另注:关于1是不是素数,书本既不清楚了,看到网路上比较好的解释是:在教材中规定1既不是素数也不是合数
,在科学研究时则不那么严格,有文献表明也有将1作为素数的。
public class primeProblem{ /** * @param args */ public static void main(String[] args) { int n = 100, cnt = 0; //2 is a unique prime number in even integer System.out.println("2"); cnt++; for(int i = 1; i < n; i += 2){ if(isPrime(i)){ System.out.println(i); cnt ++; } } System.out.println("statistics:" + cnt); } public static boolean isPrime(int num){ //tell 2 -- sqrt(n) is enough! for(int i = 2; i <= Math.sqrt(num); i++){ if(num % i == 0) return false; } return true; } }