次の素数を求める仕組み
0以上の整数nを入力すると、nより厳密に大きい最初の素数pを求めます。結果にはpとの差と、実際に判定した奇数候補の個数も表示されます。
「次」は入力値を含まない
条件はq > nです。nが17のような素数でも17は返さず、答えは19になります。左右の距離を比べる「最も近い素数」とは別の問題です。
探索はn + 1から始まります。2より小さい場合は2を採用します。2を過ぎた後は偶数がすべて合成数なので、奇数だけを候補にできます。
奇数候補については、その平方根まで割り切れる数がないか確認します。合成数なら少なくとも一方の因数が平方根以下にあるため、この範囲で約数が見つからなければ素数です。
手計算で確かめやすい例
0と1から始める場合
n = 0ではp = 2、差は2です。n = 1でもp = 2ですが差は1になります。どちらも候補は1個です。
途中に合成数がある場合
n = 14では、まず15を調べます。15は3で割り切れるため不採用です。次の17は素数なので、答え17、差3、候補2個になります。
候補が複数続く場合
n = 1000では1001、1003、1005、1007、1009を順に調べます。最初の4つは合成数で、1009が素数です。差は9、候補は5個です。
表示される個数と入力範囲
- 差p - nは数直線上の距離です。
- 候補数は素数判定を行った奇数の個数です。
- あらかじめ飛ばした偶数や、割り算の回数は候補数に含みません。
入力範囲は0から1,000,000,000,000までの整数です。上限を入力すると答えは1,000,000,000,039、差は39、奇数候補は20個になります。上限は入力nに対するもので、結果pは少し上回ることがあります。
この範囲では丸めや確率的な判定を使いません。小数、負の数、空欄は受け付けません。何百桁もの整数には別の大整数用アルゴリズムが必要です。
次の素数に関する質問
入力値が素数の場合と、偶数を飛ばす理由を押さえると結果を確認しやすくなります。
入力した数が素数なら、そのまま答えになりますか?
なりません。入力値より大きいことが条件です。17を入力した場合は19を返します。
最も近い素数を探していますか?
いいえ。小さい側は比較せず、大きい側にある最初の素数だけを探します。
1が素数ではないのはなぜですか?
素数には正の約数がちょうど2個必要です。1の正の約数は1だけなので、次の素数は2です。
偶数は候補数に入りますか?
2以外の偶数はすべて合成数なので、探索中は飛ばし、候補数にも入れません。
結果が入力上限を超えてもよいのですか?
はい。上限は入力値に適用されます。上限入力の次の素数は1,000,000,000,039です。
結果は必ず素数ですか?
指定範囲では平方根までの約数を正確に調べるため、結果は確定した素数です。
類似の計算機
同じトピックに関する次の計算機が役立つかもしれません:
- Zスコア計算機. 値が集団の平均からどれだけ離れているかを調べ、Zスコアから元の尺度にも戻せます。
- 最小公倍数計算機. それぞれ100桁までの2つの整数を入力して、最小公倍数を正確に求めます。
- 最大公約数計算機. それぞれ100桁までの2つの整数を入力して、最大公約数を正確に求めます。
- デジタルルート計算機. 10,000桁までの整数を入力して、1桁にまとまるまでの計算過程を確認できます。
- 組合せ計算機. 全要素数nと選ぶ数kを入力すると、可能な組の数を正確に表示します。
- 余りのある割り算計算機. 整数の被除数と0ではない除数を入力すると、商と一意に定まる余りを表示します。
- 度からラジアンへの換算. 度またはラジアンで角度を入力すると、対応する値がすぐに表示されます。
- 素数判定計算機. 整数を入力して、素数、合成数、または特別な場合を判定します。
- 超階乗計算機. 整数nを入力して、1!からn!までのすべての階乗を掛け合わせます。
- 素数階乗計算機. 整数の上限nを入力して、n以下にあるすべての素数の積を求めます。
ソーシャルメディアで共有する
気に入ったら、計算機をソーシャルメディアプラットフォームで共有してください。あなたにとっては簡単で、プロジェクトのプロモーションにとっては有益です。ありがとうございます!