素数四つ組 p, p+2, p+6, p+8 を n まで検索
素数四つ組検索では、p、p に二を加えた数、p に六を加えた数、p に八を加えた数から成る密集した四つの素数を、指定した上限まで順に一覧表示します。十三以上の整数をご入力いただくと、該当する四つ組と件数が返されます。計算には決定論的なふるいを用いるため、同じ上限で繰り返し実行しても結果は常に同一です。素数の配置の調査、例題の確認、教材の作成、候補を一つずつ手作業で調べずに信頼できるテストデータを作る場合にご活用いただけます。
無料で実行
検索結果に含まれるもの
このツールでいう素数四つ組は、p、p に二を加えた数、p に六を加えた数、p に八を加えた数という厳密な形を持つ四つの素数です。上限 n はその値を含み、組全体に適用されます。つまり、最大の要素である p に八を加えた数が n 以下の場合に限り、四つ組が返されます。この定義により境界での動作が明確になります。先頭の素数だけが範囲内に入っていても、組が早く表示されることはありません。最初の有効な結果は 5, 7, 11, 13 であるため、入力できる最小値は十三です。候補を昇順で調べるので、出力も先頭の素数の昇順になります。各結果は四つの数を持つ配列で表され、件数の項目には見つかった配列の数が示されます。任意の四素数の集まり、近似する組、異なる間隔の配置は一覧に含まれません。返される各行は、ゼロ、二、六、八という正確な差に従います。
計算の仕組み
まず、n が公開されている範囲内の整数であることを確認します。続いて、ゼロから n までエラトステネスのふるいを構築します。まだ印のない各素数について、その素数の二乗から倍数を除外し、合成数として記録します。この範囲を限定した処理が終わると、素数判定は試し割りの繰り返しではなく、記録への直接参照で行えます。アルゴリズムは、p に八を加えた値が指定上限内にある間だけ、開始値 p の候補を調べます。各候補について必要な四つの位置を確認し、すべてが素数の場合だけ組を追加します。この方法は決定論的であり、ネットワークサービス、乱数、現在時刻、保存状態、確率的素数判定を使用しません。そのため、同じ有効な入力からは常に同じ順序の JSON 出力が得られます。固定された最大値により、ブラウザーと API の処理を無制限なメモリー使用量や実行時間から保護しながら、実験、実演、自動検証に十分な一覧を作成できます。
出力の利用方法と読み方
n は、調べたい最大の開始素数ではなく、結果に含めたい最大の数に合わせてお選びください。たとえば候補が p から始まる場合、n が p に八を加えた値に達して初めて表示されます。四つ組の項目は独立した組を昇順に並べた一覧であり、各内側の配列には整数が正確に四つ入ります。件数はその一覧の長さで、スクリプトが行を数え直さずに要約を必要とする場合に便利です。完全な組が範囲にない場合、有効な検索でも空の一覧を返すことがあります。ただし、受け付ける最小の上限には、既知の最初の組がすでに含まれます。素数間隔の授業、数学ソフトウェアの回帰テスト、別の統計分析への入力として結果をご利用いただけます。なお、この検索は特定の素数配置を列挙するもので、このような組が無限に存在するかという一般的な予想を証明するものではありません。API による自動処理は1回 $0.002 で、同じ純粋な計算をページのブラウザー機能でも実行できます。
活用例
素数の配置を調べる
間隔 2, 4, 2 の正確な例を生成し、選択した範囲で出現箇所がどのように分布するか比較できます。
数学の演習問題を準備する
素数判定、ふるい、素数間隔、密集した素数群の授業向けに、順序の整った解答例を作成できます。
決定論的なテストデータを作る
外部データや確率的な結果を使わず、数論ソフトウェアの試験用に安定した四つ組一覧と件数を得られます。
よくある質問
ここでいう素数四つ組とは何ですか?
p, p+2, p+6, p+8 の形を取る四つの素数です。異なる間隔を持つ四素数の組は含まれません。
上限 n の値も範囲に含まれますか?
はい。返される四つ組の全要素が n 以下であり、最大要素 p+8 も範囲に含まれます。
n が 13 以上でなければならないのはなぜですか?
最初の素数四つ組は 5, 7, 11, 13 です。そのため、十三が有用な上限の最小値であり、それ未満の入力は拒否されます。
素数はどのように見つけますか?
n まで決定論的なエラトステネスのふるいを作り、開始候補ごとに必要な四つの位置を確認します。
API リクエストの料金はいくらですか?
API リクエストは1回 $0.002 です。ブラウザー機能では同じ決定論的な計算をローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/prime-quadruplet \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100}'const res = await fetch("https://api.kit.forhosting.com/numth/prime-quadruplet", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/prime-quadruplet",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/prime-quadruplet", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/prime-quadruplet", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 100
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.prime_quadruplet",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_n | 13 |
max_n | 10000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |