1. 程式人生 > >用“埃氏篩法”求2~100以內的素數。2~100以內的數,先去掉2的倍數,再去掉3的倍數,再去掉5的倍數,……依此類推

用“埃氏篩法”求2~100以內的素數。2~100以內的數,先去掉2的倍數,再去掉3的倍數,再去掉5的倍數,……依此類推

import java.util.ArrayList;
import java.util.List;

/**
 * @author Shicrom
 * @see 用“埃氏篩法”求2~100以內的素數。
 * @classname 埃氏篩法的外文名稱
 */
public class SieveOfEratosthenes {

	public static void main(String[] args) {
		/**
		 * @number 宣告一個空的List集合
		 */
		List<Integer> number = new ArrayList<Integer>();

		System.out.print("用“埃氏篩法”求2~100以內的素數:\n");
		
		for (int i = 0, y = 2; i < 98; i++, y++) {
			number.add(i, y);
		}
		// 給空的集合注入2到99的值,用於計算
		for (int i = 0, y = 2; i < number.size(); i++, y++) {
			for (int j = 0; j < number.size(); j++) {
				if (number.get(j) % y == 0) {
					if (number.get(j) == y) {
						continue;
					} else {
						number.remove(j);
						// 去除能給自身取餘的數,保留自己
					}
				}

			}
			System.out.print(number.get(i) + " ");
		}
	}
}