2018かつては中学校数学の学習指導範囲だった『素数』ですが、今では小学校算数の内容になりました。今回は小学生に教えるのを想定して基本的な素数の定義や性質を抑えつつ、さらに素数が判別できるプログラムや素数を自動で生成するプログラムを紹介します。素数は\(6\)の倍数の前後に現れる素数に関するプログラム素数の自動判定プログラム素数の自動生成プログラム素数の定義とは?素数はこのように定義されます。素数とは\(1\)と自分自身以外に正の約数を持たない自然数で、\(1\)でない数。具体的に\(2~10\)の数字を素数・素数でないものをわけると以下の通り。素数\(2(1,2)\)\(3(1,3)\)\(5(1,5)\)\(7(1,7)\)素数ではない\(4(1,2,4)\)\(6(1,2,3,6)\)\(8(1,2,4,8)\)\(9(1,3,9)\)\(10(1,2,5,10)\)ちなみに、\(1\)を素数と勘違いしやすいですが、「素数は正の約数が\(2\)個の自然数」と覚えると間違いにくいです。(\(1\)の約数は\(1\)のみ)では次に素数の一覧表を見てみましょう。素数の一覧表\(1~100\)の素数一覧表\(1~100\)までの数字の中で素数に色を付けました。\(1~1000\)の素数一覧表つづいて、\(1~1000\)までの素数の一覧をまとめると以下の通り。1~1002,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97101~200101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199201~300211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293301~400307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397401~500401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,501~600503,509,521,523,541,547,557,563,569,571,577,587,593,599601~700601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691701~800701,709,719,727,733,739,743,751,757,761,769,773,787,797801~900809,811,821,823,827,829,839,853,857,859,863,877,881,883,887901~1000907,911,919,929,937,941,947,953,967,971,977,983,991,997これらから分かることは、素数に規則性はないということです。素数は\(6\)の倍数の前後に現れるただし、数字をこのように\(6\)列に並べると素数の出現に偏りがあるのが見て取れると思います。\(2\)と\(3\)以外の素数は必ず右から\(1\)番目と\(3\)番目の列に出現していますね。右から\(2\)番目の列が\(6\)の倍数なので、\(6\)の倍数の前後の数字に素数が出現するということです。この性質はどれだけ桁数が増えても変わりません。\(2,3\)を除けば素数が現れるのは必ず\(6\)の倍数の前後というのは決まっているのです。これも考えてみれば簡単な話で、\(2\)の倍数と\(3\)の倍数の列を除外したら右から\(1\)番目と\(3\)番目の列しか残りません。左と左から\(3\)番目の列は偶数、左から\(2\)番目の列は\(6\)の倍数と\(3\)だけ違う数字なので必ず\(3\)の倍数です。\(2\)と\(3\)を除けば、素数は必ず\(6\)の倍数の前後にしか出現しないというのがわかります。それでも素数の出現に規則性がないのは変わりません。素数かどうかを判別するには地道に約数がないかを見極めないといけないのです。素数に関するプログラム素数の自動判定プログラム素数を自動で判定してくれるプログラム作りました。下の枠内に数字を入れた数字について「素数である。」or「素数ではない。」を判別してくれます。桁数を増やしすぎると動作が重くなるので要注意!は素数の自動生成プログラムつづいて、指定した数字未満の素数を自動生成するプログラムです。こちらも桁数を増やしすぎないように注意してください。コメントをキャンセルメールアドレスが公開されることはありません。