题目
判断 101-200 之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
判断素数的方法
- n 除以 [2,n],如果能被整除,则表明非素数,否则是。
- n除以 [2,sqrt(n) ],如果能被整除,则表明非素数,否则是。
原因:若n非素数,则可以被分解成两个不等于1的约数x1,x2,且满足x1<=sqrt(n) , x2>=sqrt(n) --> 可以用 “n % x1” 判断是不是素数
- 算法:Sieve of Eratosthenes
以下
第二种方法
public class Prime {
static boolean prime(int i) {
//判断输入的i是否是素数
for (int j =2; j<=Math.sqrt(i);j++) {
if(i%j == 0) {
//如果i能够被j整除,说明此数不为素数
return false;
}
}
System.out