超素数チェッカー
11は5番目の素数で、5も素数なので11は超素数です。7は4番目で、4は素数ではありません。数を入力すると、素数の中での順番と、その順番も素数かが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 11
- 添字
- 5
超素数(スーパープライム、素数添字素数とも呼ばれます)とは、すべての素数の列における位置そのものが素数である素数です。整列した素数は 2、3、5、7、11、13、17 から始まり、1 始まりの添字は 1 から 7 です。添字 2、3、5、7 は素数なので 3、5、11、17 は超素数であり、一方 2(添字 1)と 7(添字 4)は通常の素数にすぎません。本チェッカーは整数 n を 1 つ受け取ります。n が素数のときは n の添字と、その添字が素数かどうかが返ります。算法は決定的な篩であり、ネットワークも乱数も時計も使いません。
超素数とは何か、判定結果がどう形づくられるか
超素数は入れ子になった 2 つの素数条件で定義されます。まず n 自身が素数でなければなりません。1 と自分以外の正の約数を持たないということです。
次に、n がいつもの増加列における k 番目の素数であるとき——p の 1 は 2、p の 2 は 3、p の 3 は 5、p の 4 は 7、p の 5 は 11、というふうに——k もまた素数でなければなりません。添字 k は n が素数であるときは素数計数 π(n) そのものです。
π(n) は n 以下の素数の個数を数え、n がその最後の席を占めるからです。したがって超素数の列は 3、5、11、17、31、41、59、67、83、109 から始まります。これらは添字が素数である 2、3、5、7、11、13、17、19、23、29 番目の素数です。
2 は p の 1 に等しく、1 は素数の添字ではないので除外されます。7 は p の 4 に等しく、4 は合成数なので除外されます。本チェッカーはこの定義を厳密に符号化します。
どちらも残すことで、教材ページは π(n) を自分で再計算せずに添字の検査を判定の横に印刷できます。
入力契約と上限、添字の求め方
公開された上限は篩を小さな型付き配列に収め、無料のブラウザ経路を瞬時に保ち、Worker の隔離領域が無制限の区間を歩かないようにします。整数が受理されたあと、エンジンはまず 6 ステップのホイールによる試し割りで n が素数かを調べます。その検査が失敗すれば、n は素数ではないというメッセージで要求は拒否され、それらの失敗は課金されません。
n が素数なら、エンジンは 0 から n までの区間でエラトステネスの篩を実行し、n 以下の未印の整数を数え、その個数を 1 始まりの添字 k とします。二度目の試し割りで k が素数かを決めます。乱択の Miller–Rabin 証人も、壁時計の種も、外部の表もありません。
n の是非だけが必要なときは専用の素数判定を、添字が分かっていて素数そのものが欲しいときは n 番目の素数電卓を選んでください。このページが答えるのは組み合わせた問いです。与えられた素数が、その添字も素数であるか。
超素数チェッカーが役立つ場面
教室やコンテストの指導者は、学習者が手作業で篩を組まず、不透明なオンライン一覧にも頼らず素数添字素数を分類できるよう、超素数チェッカーを使います。試験生成器は、合成数を黙って false で返すのではなく無効入力として印す決定的な神託を必要とします。欠陥のある採点が、その旗を非素数の成功した分類と扱う恐れがあるからです。
ライブラリ作者は素数添字素数の列について OEIS 風の固定例を留め、継続的統合でもこのページで学生が見るのと同じ答えを求めます。候補素数の列を超素数まで絞り込むノートは、セルごとに契約を呼び、返された添字を監査列として残せます。
合成数を拒否せず分類したいときは素数判定と、すでに手元にある候補を試すのではなく添字で列を歩きたいときは n 番目の素数電卓と組み合わせてください。
活用例
教室での素数添字素数の分類
学生に素数 n を送らせ、添字 k と k が素数かどうかの両方を見せるので、超素数の判定は告知ではなく説明になります。
コンテストと OEIS のための決定的な固定例
11 や 17 のような既知の超素数と、7 のような反例を、静的な数列ダンプを埋め込まずに単体テストへ固定します。
素数の一覧を超素数まで絞り込む
候補素数の列を歩き、添字が素数であるものを残し、監査のため各残存値の横に返された添字を保存します。
よくある質問
超素数とは何ですか?
超素数(素数添字素数とも呼ばれます)は、素数の列で素数の位置に座る素数 n です。n が k 番目の素数なら、n が超素数であるのは k が素数のときちょうどです。
2 は超素数ですか?
いいえ。 2 は最初の素数なので添字は 1 であり、1 は素数ではありません。最小の超素数は 3 です。
添字はどのように計算されますか?
n が素数のとき添字は π(n)、すなわち n 以下の素数の個数です。エンジンは 0…n 上のエラトステネスの篩で数え、その個数が素数かを検査します。
7は超素数ですか?
いいえ。7は素数ですが、2、3、5、7と並べると4番目で、4は素数ではありません。そのため7は普通の素数であり、超素数ではありません。
11が超素数なのはなぜですか?
素数を2、3、5、7、11と数えると、11は5番目にあたります。5も素数なので2つの条件がそろい、11は超素数になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/super-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":11}'const res = await fetch("https://api.kit.forhosting.com/numth/super-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 11
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/super-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 11
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/super-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":11}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":11}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/super-prime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 11
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.super_prime",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 1000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
n が素数でないとき、性質は素数にだけ定義されるためタスクは invalid_input で失敗します。
超素数とは何か、判定結果がどう形づくられるか
合成数の n は超素数ではないと答えるのではなく invalid_input で拒否されるため、呼び出し側が「4 は素数ではない」と「7 は素数だが超素数ではない」を混同することはありません。成功時の本体は常に n、真偽値 super_prime、整数 index、真偽値 index_prime を示します。呼び出しが成功するとき super_prime と index_prime は同じ値を持ちます。
入力契約と上限、添字の求め方
必須の整数フィールド n を含む JSON 本体を POST するか、別名 number、value、p を使ってください。値は JSON 数値、十進数字列、または bigint でよく、小数、真偽値、空文字、指数表記、2 から 100 万の範囲外の値はフィールド名付きの invalid_input で失敗します。同じ n は常に同じオブジェクトを返すので、参照例は正確な JSON を固定できます。
超素数チェッカーが役立つ場面
実装は純粋な parse の tier A なので、成功した呼び出しはいずれも公開された基本料金 $0.002 で、モデルのトークンも外向きのネットワークもなく、検証失敗は残高を消費しません。n は 2 以上かつ公開された 100 万以下の整数に保ち、invalid_input は再試行ではなくクライアント側の修正として扱い、素数が受理または拒否された理由を説明する必要があるなら index と super_prime の旗の両方を保存してください。
技術的な質問
合成数の n が false を返さず失敗するのはなぜですか?
超素数は素数にだけ定義されます。9 のような合成数は候補ではないので、super_prime が false の成功本体ではなく invalid_input で失敗します。これにより「素数ではない」と「素数だが超素数ではない」が区別されます。
超素数チェッカーの料金はいくらですか?
ブラウザの道具は無料です。API 要求は成功した呼び出しごとに前払いの KIT 残高から $0.002 を使います。無効な入力は課金されません。