ユーザ用ツール

サイト用ツール


エラトステネスのふるい

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

エラトステネスのふるい [2010/02/13 13:03] – 外部編集 127.0.0.1エラトステネスのふるい [2013/06/11 13:30] (現在) – 削除 nullpon
行 1: 行 1:
-====== エラトステネスのふるい ====== 
-<code ruby> 
-x = 10001000 
  
-sample_numbers = (2 .. x).to_a 
-prime_numbers = [2] 
- 
-while not sample_numbers.empty? do 
- 
-    max_prime_number = prime_numbers.last 
- 
-    # 素数で割れるものを除外 
-    sample_numbers = sample_numbers.reject { |i| 
-        i % max_prime_number == 0 
-    } 
-     
-    # 残ったものの最初の数が素数 
-    prime_numbers << sample_numbers.shift 
-     
-    # 検査する数の最後が、最大の素数の平方より小さければ、残りは全部素数 
-    if sample_numbers.last < prime_numbers.last ** 2 
-        prime_numbers << sample_numbers 
-        prime_numbers.flatten! 
-        break 
-    end 
-end 
- 
-prime_numbers.each do |p| 
- puts p 
-end 
-</code> 
エラトステネスのふるい.1266066226.txt.gz · 最終更新: 2013/06/11 13:30 (外部編集)