直前の素数
入力した数より厳密に小さい最大の素数を求めます。10より小さい素数は2、3、5、7なので答えは7です。2より大きく1兆までの整数に対応し、毎回同じ正確な答えを返します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 10
- 直前の素数
- 7
与えられた整数のすぐ下にある素数を求めることは、数論の宿題、競技問題、近い素数シードが必要な暗号実験でよくある手順です。この直前素数ファインダーは 2 より大きい整数 n を受け取り、n より真に小さい最大の素数を返します。
「直前の素数」の意味と定義されるとき
整数 n の直前の素数とは、n より真に小さい最大の素数です。例えば n が 10 のとき、下にある素数は 2、3、5、7 なので直前の素数は 7 です。n 自身が素数の場合 — たとえば n が 17 — 直前の素数はそれでも下の 13 であり 17 ではありません。
定義は n を返しません。この概念は n の下に少なくとも一つの素数が存在するときだけ定義されます。2 が最小の素数なので、2 以下の整数に直前の素数はありません。
真に小さい素数がないからです。内部ではエンジンが n マイナス一から下向きに候補を歩き、決定的な素数判定で各候補を試し、最初の素数が現れるまで続けます。確率的な Miller–Rabin の「かもしれない」は返しません。
素数間隔、制限、実務上の用途
素数間隔は平均的にゆっくり成長します。大きさ x 付近では連続する素数の典型距離は自然対数 x のオーダーなので、n から短い下向き歩行で数候補のあと直前素数が見つかることが多いです。それでも病的な間隔は存在するため、本機能は n を一兆で上限とします。
暗号規模の整数の直前素数が必要な場合は、専用の多倍長整数スタックとより強い素数判定エンジンが必要です。この軽量 parse 機能はその道具ではありません。実務では教師がベルトラン型の問いを示すために直前素数を使い、学生が証明提出前に手計算を確認し、開発者がプロトコルやゲーム規則でレベル、スコア、バケットサイズ未満の最大素数が必要なときに使います。
隣接対全体が必要なら次の素数ルーチンと組み合わせてください。
活用例
宿題と「n 未満の最大素数」解答の確認
学生とコーチは、手で素数を列挙したり n 自身が素数のときの off-by-one を恐れたりせずに、境界未満の最大素数を検証できます。
スクリプトとプロパティテストへの近い素数シード
サイズ、スコア、表長より真に下の素数が必要な生成器は、自前の試し割りを同梱する代わりにこの決定的ステップを呼べます。
よくある質問
直前の素数ファインダーは無料ですか?
ブラウザツールは無料でローカル実行です。失敗タスクは課金されません。
n の最大値は?
n は 2 より大きく最大 10^12(一兆)の整数でなければなりません。それより大きい値は本機能外の多倍長素数判定スタックが必要です。
入力した数がすでに素数ならどうなりますか?
その数自身ではなく、ひとつ下の素数が返ります。17なら答えは13です。直前の素数は入力した数より厳密に小さくなければならないためです。
2に直前の素数がないのはなぜですか?
2が最小の素数で、それより小さい素数がないからです。そのため入力は2より大きい必要があり、3なら答えは2です。
どれくらい下まで探すことになりますか?
たいていはわずかです。大きさxの付近では隣り合う素数の間隔がおおよそxの自然対数程度なので、数個の候補を調べれば見つかることがほとんどです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/prev-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/numth/prev-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/prev-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/prev-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/prev-prime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.prev_prime",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 1000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
決定的な試し割りで、標本化はなく、API 経由で同じ核をスクリプトに接続する前にブラウザで無料で試せます。
「直前の素数」の意味と定義されるとき
したがって本機能は n が 2 より大きいことを要求し、2、1、0、または負の値を送ると invalid_input で答えます。この契約は、存在しない答えを捏造せず n 未満の最大素数を求める教科書や競技プログラミングの文面と一致します。受理された範囲内のすべての n について整数 previous_prime は正確で、ブラウザと API 経路の間で再現可能です。
APIの呼び出し方と返却内容
宿題パイプライン、近い素数境界が必要なプロパティベースのテスト生成器、あるいは計算機代数系を入れたり試し割りを手で書き直したりせずに再現可能な直前値が欲しい任意のワークフローからご利用ください。必須フィールド n ただ一つを含む JSON 本体を送ってください — 2 より真に大きく、最大一兆(10^12)の整数です。同じフィールドに number と value の別名が使えるので、フォームや手書きクライアントは自然なラベルを使えます。成功時の応答には受理された n と、その n より真に小さい最大素数 previous_prime が含まれます。典型例:n が 3 なら previous_prime は 2;n が 100 なら 97;n が 1000 なら 997。失敗する検証 — n 欠落、非整数、小数、2 以下、公開上限を超える値 — は invalid_input を返し課金されません。料金は成功リクエストごとに固定の $0.002(単位 item、限界単価ゼロ)です。
素数間隔、制限、実務上の用途
教室問題、多くのプログラミング競技、軽い暗号実験には十分大きく、多倍長ライブラリなしの純 Worker 経路で試し割り素数判定が対話的に保てる程度に十分小さいです。このエンドポイントは意図を明確にし応答を最小に保つため、真に小さい側だけを意図的に答えます。
連携の活用例
教材で素数間隔を示す
授業ノートに完全な素数表を作らず、値の範囲で n と previous_prime を比較し、間隔の振る舞いを示せます。
技術的な質問
n の直前の素数とは何ですか?
n より真に小さい最大の素数です。n = 10 なら直前の素数は 7;n = 17 なら 13 で、17 ではありません。
なぜ n = 2 は拒否されますか?
2 は最小の素数なので、その真に下に素数は存在しません。n が 2 以下の値は invalid_input を返します。
直前の素数ファインダーはどう動きますか?
n − 1 から下向きに候補を歩き、決定的な試し割りで各候補を試し、素数が見つかったらその整数を previous_prime として返します。