素数判定チェッカー
整数が素数かどうかを判定し、素数でなければそれを証明する最小の約数を示します。97は素数と判定され、約数は表示されません。小さな因数はすぐに見つかり、大きな素数も決まった正確な判定で確認します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
この素数判定チェッカーは、整数 n が素数かどうかを判定し、素数でない場合はその数が合成数であることを証明する最小の約数を返します。古典的な試し割りと決定的な Miller–Rabin テストを組み合わせているため、小さな因数はすぐに現れ、大きな素数は平方根までのすべての候補を網羅的に探索することなく確認されます。2 以上の整数を 1 つ送ると、明確な素数フラグ、元の n、そして null または最小の約数が返ります。乱択の証人もネットワーク参照もない決定的な算術です。
チェッカーが返すものと、入力を拒否する場合
成功した呼び出しはいずれも、関連する 3 つの問いに一度に答えます。n は素数か、どの値が判定されたか、そして——数が合成数であれば——1 より大きい最小の正の約数は何か、です。1 つの契約、1 組のエラーメッセージ、そして同一の構造化された結果です。
この予測可能性は、不正なデータで答えをでっち上げるのではなく停止しなければならないフォームや CLI ツール、バッチパイプラインにチェッカーを組み込むときに重要になります。
試し割りと Miller–Rabin がどう連携するか
試し割りは最も古い素数判定手法です。連続する候補が n を割り切るかどうかを、2 と 3 から始めて、6k±1 の形の数だけを調べる 6 ステップのホイールに沿って続けます。約数が現れた瞬間、その数は合成数であり、その約数が最小のもの——多くの教育ツールやコーディング問題、データ品質チェックが必要とするもの——です。
n が控えめな大きさなら、整数の平方根まで試し割りを完了すれば素数性の証明にも十分です。なぜならすべての合成数は自身の平方根以下の因数を持つからです。
より大きな整数については、チェッカーはまず同じ試し割りのループで小さな因数を偵察し、次に安全な JavaScript の範囲のすべての整数について素数性を正しく判定することが知られている固定の底で、決定的な Miller–Rabin 一式を実行します。小さな因数が見つからず Miller–Rabin が素数と報告すれば、結果は素数です。
乱択の底も、実時間のシードも、外部の表もありません。
実際のワークフローで素数判定チェッカーを使う場面
教育者や学生は、宿題を検証したり反例を生成したり、素っ気ない false ではなく最小の約数を表示することで数が失格する理由を示したりするために、信頼できる素数判定チェッカーを使います。
アプリケーション開発者は、プロダクトキーやパズルのシード、暗号のおもちゃ的なパラメータがさらなる処理の前に素数の形をしている必要があるときに呼び出し、完全な計算機代数システムを立ち上げることなく、偶数値や明らかな倍数のような打ち間違いを捕まえます。データエンジニアはインポート時に数値列を検問します。
ここで失格する「素数の識別子」を主張するものはいずれも、監査ログ用の具体的な因数とともに早期に拒否されます。この機能は tier A なので、このページに数を貼り付けてブラウザで同一のロジックを無料で実行できます。
問いが厳密に「n は素数か、そうでなければ最小の約数は何か」であるときにこのツールを選んでください——完全な因数分解や、巨大な数千ビット整数の素数証明、あるいはカスタムの証人リストによる確率的テストが必要なときではありません。
活用例
宿題や授業のデモ
数が素数かどうかを学生に示し、合成数のときはすぐに最小の約数を表示するので、失格の様子が抽象的ではなく具体的になります。
素数の形をした設定値の検証
プロダクトキーやパズルのシード、おもちゃ的な暗号設定において、偶数や明らかに合成数のパラメータを、長いパイプラインに入る前に拒否します。
素数を主張する数値列の監査
素数の識別子だと称するもののインポートを走査し、合成数にフラグを立て、失格した各行の監査証跡に最小の約数を添付します。
よくある質問
ここでの Miller–Rabin テストは確率的ですか?
いいえ。 底はサポートされる範囲のすべての整数について固定かつ決定的なので、同じ n は常に同じ結果を返します。
これは n を完全に因数分解しますか?
いいえ。 n が素数かどうかと、合成数のときは単一の最小の約数だけを報告します——素因数の完全な一覧ではありません。
素数でないときに約数が表示されるのはなぜですか?
1より大きい最小の約数が、合成数であることの証拠だからです。たとえば2より大きい偶数なら2が表示されるので、単に「いいえ」ではなく理由まで分かります。
97は素数ですか?
はい、素数です。2から順に割り切れるかを調べても約数が見つからないため素数と確定し、最小の約数の欄は空になります。
大きな数はどのように判定しますか?
まず6k±1の形の候補で小さな因数を探し、見つからなければ底を固定したミラー–ラビン判定を行います。この範囲の整数では確率に頼らず正確に判定できます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/prime-checker \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":97}'const res = await fetch("https://api.kit.forhosting.com/numth/prime-checker", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 97
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/prime-checker",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 97
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/prime-checker", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":97}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":97}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/prime-checker", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 97
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.prime_checker",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
チェッカーが返すものと、入力を拒否する場合
レスポンスは小さな JSON オブジェクトで、真偽値の prime フラグ、数値として返される整数 n、smallest_divisor フィールド(素数なら null、合成数なら具体的な整数)、そして判定が主に試し割りと Miller–Rabin のどちらから来たかを記録する method ラベルを含みます。欠落、小数、非数値、あるいは厳密に 2 未満の入力は、いかなる算術が走る前に invalid_input で拒否されるため、9.5 のような浮動小数点値やゼロが誤解を招く素数判定を生むことはありません。同じ規則が無料のブラウザ経路にも API にも適用されます。確率的な推測やすべての約数の長い因数分解ではなく、監査可能な素数の是非と説明的な因数が必要なときは、いつでもこのエンドポイントを使ってください。
試し割りと Miller–Rabin がどう連携するか
合成数と報告すれば、試し割りが前の境界から続いて最小の因数を復元するので、API は最小の約数を挙げずに「合成数」と言うことは決してありません。
実際のワークフローで素数判定チェッカーを使う場面
後で POST 形式のタスクをスクリプトや SDK に組み込むときは、同じ契約を 1 リクエストにつき $0.002 で自動化してください。n は公開された安全な範囲内で 2 以上の整数に保ち、invalid_input を再試行ではなくクライアント側の修正として扱い、どのアルゴリズム経路が判定したかを説明する必要があるなら返された method フィールドを保存してください。
技術的な質問
料金はいくらですか?
API では 1 リクエストにつき $0.002 です。同じチェックはこのページのブラウザでも無料で実行されます。
どの数が受け付けられますか?
2 以上、公開された安全な整数の最大値までの整数です。小数、真偽値、空の入力、および 2 未満の値は invalid_input を返します。
合成数に対しては何が返りますか?
prime は false となり、smallest_divisor は n を割り切る 1 より大きい最小の整数になります。素数の場合、smallest_divisor は null です。