LoginSignup
0
0

More than 1 year has passed since last update.

【Ruby】1~100の数字の中から素数を出力する方法

Posted at

1~100の数字の中から、素数を出力するコードを書きなさい

結論と解説

コード

num = [*1..100] # 1~100の数をもつ配列numを作成
non_prime_number = [] # 素数ではない数を入れるように空の配列non_prime_numberを作成

num.each do |n| # numに対してeachを回し、素数ではない数を探す
  non_prime_number << n if n == 1 # 1は素数ではない
  # 2は素数なので処理なし
  if n >= 3
    i = 1 # while文内で使う
    while true # 無限ループを作る
      i += 1 # iは2からスタートさせる
      # iを2~nで変化させ、n / iの余りが0であったらnは素数と判定
      non_prime_number << n if n % i == 0
      # iがnのひとつ前の数になるか、nが素数でない数であったらループ終了 
      break if i == n -1 || n % i == 0 
    end
  end
end

# 全ての数から素数でない数を引いて出力
puts num - non_prime_number

出力結果

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

日記的メモ

転職活動において、面接で出されたコーディングテストです。
面接時に答えられなかったので、復習のために作成しました。
こういった数学の有名な数列について作成できるようにしとかなきゃな~と思いました。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0