输入格式
N
输出格式
0~N的素数
样例输入
100
样例输出
2
3
5
7
11
13
17
19
23
29
31
37
老朋友素数了属于是!
方法1:(穷举法)
通过遍历 i 的所有除数,如果除以除数后商变成了0,那么把布尔值变成假的。表示不是素数
【注】外循环一次,内循环要全部都过一遍,过完。下一次继续
如果遍历完 内循环后,布尔值isPrime仍然为真,那么就直接输出 i;
详情见代码:
//package pack3;
//筛选1~100内的素数
import java.util.Scanner;
public class selectPrime {
public static boolean isPrime = true; //默认是素数
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
//0~N的素数
for( int i=2; i<N; i++) {
for(int j=2; j<=i/2; j++) {
if(i % j == 0) {
isPrime = false; //不是素数
}
}
//通过除数的循环,直接输出
if( isPrime == true) {
System.out.println(i);
}else {
//重置布尔值
isPrime = true;
}
}
}
}
方法2:(欧拉数学)