第13講 素数探索

第4話 素数を探索するには?
皆さん、
59は素数ですか、
それとも合成数ですか。
これを判定するには、
59を1から59まで割っていって、
割りきれる数=約数が1と59しかないことを示せば良いですね。
ただし、59まで割っていく必要はないです。
どうしてでしょうか。
例えば、12の約数を考えて下さい。
1,2,3,4,6,12
ですね。
(1,12)、(2,6)、(3,4)
はどんな関係にありますか。
そうです。
1×12=12
2×6=12
3×4=12
です。
かけると12になる組です。
次のようにいってもよいです。
「一方で割ったとき、他方は商である。」
ということは、
59の約半分=29まで59を割っていって、
割れる約数の個数が1個しかないことを、
示せば59が約数であることが分かります。
59÷1=59
59÷2=29・・・1
59÷3=19・・・2
59÷4=14・・・3
59÷3=19・・・2
     ・
     ・
     ・
59÷29=2・・・1
というわけで、割り切れるのは1のみです。
ですから、59は素数と判定できます。
では、このような手順で、
素数を1000以内の範囲ですべて生成させて下さい。
実行画面
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
素数が1から100の間に25個ありました。
プロジェクト終了


ただし、コードの条件を以下とします。
@ 素数の判定は社員(関数)に行わせ、
  その社員(関数)は、素数なら1と社長(main)に報告し、
  素数でないなら0と報告することにします。
A 社員は0と1しか報告しないので、社員(関数)の型は、
  char型としましょう。本来はchar型は文字を表すものですが、
  255以下の整数としても使えます。
  printfで表示するときに、%cとなっていれば、
  255以下で表されている文字コードに対応する文字を表示しているだけで、
  実際には、char型の変数は255以下の整数なのです。
  1以下の整数しか扱いませんので、char型とすることにします。
B 社長(main)は、社員の報告に基づいて素数を表示する。
C 実行画面のように10個単位で改行する。
D 社長は、素数の個数もカウントして表示する。


第3話へ 第5話へ

a


初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ