素数筛法

题目描述

输出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);
			}
		}
	}
posted @ 2015-08-12 10:11  枯桃  阅读(153)  评论(0编辑  收藏  举报