数字の全順列が素数か判定
素数の各桁をどう並べ替えても素数のままかを調べます。113は、桁の異なる並べ方3通りがすべて素数なので条件を満たします。満たさない場合は、最初に見つかった合成数の並びを表示します。10桁まで使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 113
- 検査した順列
- 3
順列素数とは、10進数字をどのように並べ替えても素数になる数です。この判定ツールは整数を受け取り、異なる順列をすべて生成し、決定的な整数演算で各値を検査します。元の数が条件を満たすか、何通りを検査したか、失敗時に最初に見つかった合成数の並びを返します。同じ数字による重複検査は行いません。先頭がゼロの並びは、その数字列が表す通常の整数として解釈します。
順列素数の判定が意味すること
すべての10進数字について、異なる並べ方が一つ残らず素数を表す場合にのみ合格となります。元の数だけが素数かを調べる通常の判定より厳しく、数字の巡回移動だけを調べる巡回素数とも異なります。数字は端から端へ移すだけでなく、任意の位置へ動かせます。
同じ数字が複数ある場合も保持しますが、同一の数字同士を交換して見た目が変わらない並びは一度だけ検査します。先頭がゼロなら、そのゼロが数値に影響しない通常の値で判定します。成功時は調べた異なる並びの総数も示します。
失敗時は、一定の辞書順で最初に現れた合成数の並びを返します。そのため、説明のない真偽値だけでなく、判定根拠をお客様ご自身で確認して再現できます。
数の入力方法と結果の読み方
n には、符号、カンマ、空白、小数点、指数、プラス記号を含まない10進整数を文字列で指定してください。文字列なら送信した数字を正確に保てるため、プログラミング言語が大きな数に適用する丸めを避けられます。2未満は素数でも有効な候補でもないため、受付範囲は2からです。
全順列の探索量に明確な上限を設けるため、入力は10桁までです。素数判定には対応する整数値を使いますが、先頭のゼロを確認できるよう文字列のまま返します。
決定的な検査と実用上の上限
アルゴリズムは完全にローカルかつ決定的であり、ネットワーク、無作為な証人、時計を使用しません。完成した各順列を正確な整数に変換し、小さな素数による除算の後、固定基数の Miller–Rabin テストで素数性を調べます。10桁という上限は、その固定証人で決定的に判定できる範囲内です。
多くの失敗はすぐに判明します。たとえば末尾が偶数または5の並びは、それ自体が1桁の素数でない限り合成数です。難しい候補では異なる並びをすべて調べます。
活用例
数論問題の答えを確認
順列素数の候補を検証し、いずれかの並びが合成数なら具体的な反例を取得できます。
生成した候補を絞り込み
範囲を限定した数学的探索で得た10進候補に、全順列の厳密な条件を適用できます。
順列の性質を教材で説明
全順列の検査を通常の素数判定や巡回素数の回転と比較して示せます。
よくある質問
重複する順列も何度も検査しますか?
いいえ。 同じ数字の個数を数えて生成するため、見た目が異なる各並びを一度だけ検査します。
先頭のゼロはどのように扱いますか?
並びは文字列として表示し、素数性はその数字列が表す通常の整数値で判定します。
巡回素数と同じものですか?
いいえ。 巡回素数は回転だけが素数であることを求めますが、本判定では可能な全順列が素数でなければなりません。
素数判定は確率的ですか?
いいえ。 受付範囲では、実装が用いる固定証人集合によって決定的な結果が得られます。
113は順列素数ですか?
はい。桁の並べ方は異なるものが3通りあり、どれも素数になります。結果には、その3通りを検査したことが表示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/permutable-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":"113"}'const res = await fetch("https://api.kit.forhosting.com/numth/permutable-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": "113"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/permutable-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": "113"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/permutable-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":"113"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":"113"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/permutable-prime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": "113"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.permutable_prime",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_digits | 10 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
順列素数の判定が意味すること
主結果は is_permutable_prime です。
数の入力方法と結果の読み方
結果が真の場合、permutations_tested は異なる並びの総数です。偽の場合は最初の合成数で停止するため、理論上の総数ではなく実際の検査回数を表します。first_composite_permutation は条件を否定した並びです。
決定的な検査と実用上の上限
数字の個数から重複のない並びを昇順で組み立てるため、同じリクエストでは常に同じ探索順と反例になります。単発の確認にはブラウザーを、反復可能な検証、教材、数論処理へ組み込む場合は1件 $0.002 の API をご利用ください。
技術的な質問
n が2未満の場合はどうなりますか?
対応範囲は2からのため、リクエストは invalid_input エラーになります。
API リクエストの料金はいくらですか?
API は1件 $0.002 です。ブラウザーではローカルの対話的な確認をご利用いただけます。