本ページには広告が含まれています。
引数に指定した数値が素数かどうかを調べます。素数の場合True、素数でない場合Falseを返します。
- 構文
- Boolean = isPrime( 数値 )
- 引数
- 数値 必須
- 素数かどうかを調べたい数値を指定
- 戻り値
- TRUE
- 素数である
- FALSE
- 素数ではない
プログラム
//////////////////////////////////////////////////
// 【引数】
// 数値 : 素数かどうかを調べたい数値を指定
// 【戻り値】
//
//////////////////////////////////////////////////
FUNCTION isPrime(num)
SELECT TRUE
CASE num < 2
RESULT = FALSE
EXIT
CASE num = 2
RESULT = TRUE
EXIT
CASE num MOD 2 = 0
RESULT = FALSE
EXIT
SELEND
FOR n = 3 TO SQRT(num) STEP 2
IFB num MOD n = 0 THEN
RESULT = FALSE
EXIT
ENDIF
NEXT
RESULT = TRUE
FEND
解説
- 4-5行目
- Falseを返して終了します。
RESULT = FALSE EXIT
- 7-8行目
- Trueを返して終了します。
RESULT = TRUE EXIT
- 10-11行目
- Falseを返して終了します。
RESULT = FALSE EXIT
- 13,18行目
- n=3から\(\sqrt{\rm{num}}\)まで2ずつカウントアップ(n=3,5,7,…)。偶数は素数でないことは自明なので3から2ずつカウントアップし奇数についてのみ処理を行う。
FOR n = 3 TO SQRT(num) STEP 2 … NEXT
- 14-17行目
- nで割り切れたらnumは素数ではないので、Falseを返して終了。
IFB num MOD n = 0 THEN RESULT = FALSE EXIT ENDIF
- 19行目
- 13行目>>>でループを抜けなければ素数なのでTrueを返す。
RESULT = TRUE
素数とは
素数とは、「1より大きい自然数のうち、1とその数でしか割り切れないもの」を指します。「約数を2個しか持たない自然数」とも言い換えられます。最も小さい素数は2で、2は1と2でしか割り切れません。3も1と3でしか割り切れないので素数ですが、4は1、4以外に2を約数として持っているため素数ではありません。このように「1とその数以外に約数を持つ自然数」のことを合成数といいます。
以下は100までの素数です。背景が水色に塗られている数字が素数です。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |
81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 |
91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |
関連記事
- ABS関数 (スクリプト関数)
- 引数の絶対値を求めます。
- ARCCOS関数 (スクリプト関数)
- 引数の逆余弦を求めます。
- CEIL関数 (スクリプト関数)
- 正の方向へ切り上げた数値を返します。
- LN関数 (スクリプト関数)
- 自然対数を求めます。
- LOGN関数 (スクリプト関数)
- 常用対数を求めます。
- ZCUT関数 (スクリプト関数)
- マイナス値を0にして返します。プラス値はそのままの値を返します。
- isOdd関数 (自作関数)
- 引数に指定した数値が奇数かどうかを調べます。奇数ならばTrue、それ以外の数値はFalse、文字列はエラー値を返します。
- radToDeg関数 (自作関数)
- 弧度法(Radian)を度数法(Degree)に変換します。度数法を弧度法に変換するにはDegToRad関数を使います。
- ARCSIN関数 (スクリプト関数)
- 引数の逆正弦を求めます。
- EXP関数 (スクリプト関数)
- 自然指数関数を求めます。