素数筛法
题目描述
输出100以内的所有素数。
题目分析
素数,又叫质数,是只能被1和自身整除的大于1的正整数。
首先定义a[i]=1,初始化整个数组,全部初始化为1,第二步双重循环,从2开始,所有2的倍数都标记为0,所有3的倍数也标记为0;然后是4,但因为4已经被标记为0了,跳过;接着是5,直到所有的数都循环过一遍。
代码实现
public static void main(String[] args) { int[] a = new int[101]; // a[i]为1时,i为素数 for (int i=1; i<=100; i++) { a[i] = 1; } for (int i=2; i<=100; i++) { if (a[i] != 0) { for (int j=i+i; j<=100; j=j+i) { a[j] = 0; } } } for (int i=2; i<=100; i++) { if (a[i] != 0) { System.out.println(i); } } }