题目:判断1-2018之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到 sqrt (这个数)【这个数的平方根】,如果能被整除,则表明此数不是素数,反之是素数。
素数是什么?
素数是只能被他自身和1整除的数字。
public static void main(String[] args){ int m = 1; int n = 2018; int count = 0; //统计素数个数 for(int i=m;i<n;i++){ if(isPrime(i)){ count++; } } System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数"); } //判断素数 private static boolean isPrime(int n){ boolean flag = true; if(n==1){ flag = false; }else{ for(int i=2;i<=Math.sqrt(n);i++){ if((n%i)==0 || n==1){ flag = false; break; }else{ flag = true; } } } return flag; }
输出结果: 在1和2018之间共有306个素数