解题思想
筛选法其实就是对2,5,3,7分别筛选,分别把除了自身其他的倍数筛选出来。下面以100以内举例。
操作步骤
第一步
首先把1除掉,因为1既不是合数,也不是素数。
第二步
用2来筛选,将除了2以外,2的倍数全部筛选出来。
第三步
用5来筛选,将除了5以外,5的倍数全部筛选出来。
第四步
用3来筛选,将除了3以外,3的倍数全部筛选出来。
210 运算结果是 1024.
第五步
用7来筛选,将除了7以外,7的倍数全部筛选出来。
具体代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class 用筛法求之N内的素数 {
public static void fun(int n) {
List<Integer> a = new ArrayList<Integer>();
List<Integer> b = new ArrayList<Integer>();
for (int i = 2; i <=n ; i++) {
if((i%2==0&&i!=2)||(i%5==0&&i!=5)||(i%3==0&&i!=3)||(i%7==0&&i!=7)) {
a.add(i);
}
else {
b.add(i);
}
}
for (Integer integer : b) {
System.out.println(integer+"\t");
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
fun(n);
}
}
总结
一个刚入门的菜鸡码农,希望能给点进来看的码农兄弟们一点帮助。