ヴィーフェリッヒ素数チェッカー
1093はヴィーフェリッヒ素数です。2の1092乗を1093²、つまり1194649で割ると余りが1になります。素数を入力すると、その余りと、この珍しい条件を満たすかが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 電力(W)
- 1,093
- p の2乗
- 1194649
- 余り
- 1
- 式
- 2^{1092} ≡ 1 (mod 1194649)
ヴィーフェリッヒ素数とは、素数 p について 2 の p 引く 1 乗を p の二乗で割った余りが 1 となる素数です。この合同は、2 の p 引く 1 乗が p 自身を法として 1 であるというフェルマーの小定理の通常の主張を強めたものであり、フェルマーの最終定理の第一場合、指数持ち上げ補題、奇数の完全数に関する制約の研究に現れます。既知の例は 1093 と 3511 の二つだけであり、日常的な素数のほとんどは検査に失敗します。本チェッカーは単一の素数 p を受け取り、素数性を検証し、決定的な BigInt 算術で厳密なモジュラ冪を計算し、余りが 1 かどうか、p の二乗、短い合同式文字列を返します。
ヴィーフェリッヒ素数とは何か、なぜ法が p の二乗なのか
フェルマーの小定理は、p が素数で基底 a を割らないとき、a の p 引く 1 乗が p を法として 1 に合同であると述べます。a が 2 のとき、これはすべての奇素数 p について 2 の p 引く 1 乗が p を法として 1 に合同であるというだけです。ヴィーフェリッヒ素数は同じ合同を法を一段上げて要求します。
すなわち 2 の p 引く 1 乗は p だけでなく p の二乗を法として 1 に合同でなければなりません。言い換えると、p の二乗を法とする乗法群における 2 の位数が p 引く 1 を割り、p を底とする 2 のフェルマークォーシェントが消える形になります。法に余分な p の因子が入るため、条件は極めて稀です。
網羅的な計算機探索は教室例をはるかに超える素数を調べてきましたが、既知の解は p が 1093 と 3511 のままです。素数 2 は失敗します。2 の 1 乗は 2 であり、2 を 4 で割った余りは 2 であって 1 ではありません。
3、5、7、11 のような普通の素数では、2 の p 引く 1 乗を p の二乗で割った余りは 1 以外になります。
ヴィーフェリッヒ素数チェッカーが役立つ場面
数論の授業やコンテスト向け訓練プラットフォームは、既知の二つの例に関する教科書の主張を、手作業でモジュラ冪を実装せず、法 p と p の二乗を混同せずに確認するためにヴィーフェリッヒ素数チェッカーを使います。研究ノートや趣味の数学スクリプトは、候補素数の走査やオフライン表を独立オラクルに対して検証するときに同じ契約を呼び出します。
ヴィーフェリッヒ素数チェッカーやフェルマークォーシェント関連の検索で順位を狙うコンテンツサイトは、無料経路が有料自動化とバイト単位で一致するライブツールの恩恵を受けます。暗号数論を教える・デモするエンジニアリングチームは、フェルマーの小定理に似た合同が法を二乗すると極めて稀になる様子を示し、素朴なモジュラ仮定に慎重な定式化が必要な理由を補強できます。
与えられた素数が 2 の p 引く 1 乗が p の二乗を法として 1 に合同かを厳密に問う場合に本ツールを優先し、範囲内の全素数の探索、完全因数分解サービス、数千ビット整数の証明書が必要な場合には使いません。
活用例
研究ノート向けの独立オラクル
オフライン表や候補素数のスクリプト走査を、決定的なモジュラ冪実装に対して検証します。
よくある質問
ヴィーフェリッヒ素数とは何ですか?
2^{p−1} ≡ 1 (mod p²) を満たす素数 p です。既知は 1093 と 3511 のみです。検査は p を法とする合同だけを求めるフェルマーの小定理より厳しいです。
1093はヴィーフェリッヒ素数ですか?
はい。1093の2乗は1194649で、2の1092乗をこれで割ると余りは1になり、ヴィーフェリッヒの条件を満たします。知られている2例のうちの1つです。
ヴィーフェリッヒ素数はいくつ知られていますか?
1093と3511の2つだけです。コンピュータによる探索で授業の例をはるかに超える素数まで調べても3つ目は見つかっておらず、試す素数のほとんどは該当しません。
2はヴィーフェリッヒ素数ですか?
いいえ。素数2では2の1乗で2となり、2を4で割った余りは1ではなく2です。そのため条件を満たしません。
フェルマーの小定理とはどう違いますか?
フェルマーの小定理では、奇素数pについて2のp−1乗をpで割った余りが1になります。ヴィーフェリッヒ素数は、pの2乗で割っても余りが1になることを求めます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/wieferich-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"p":1093}'const res = await fetch("https://api.kit.forhosting.com/numth/wieferich-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"p": 1093
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/wieferich-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"p": 1093
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/wieferich-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"p":1093}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"p":1093}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/wieferich-prime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"p": 1093
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.wieferich_prime",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
合成数の入力は偽陰性ではなく invalid_input で拒否されるため、宿題用スクリプトや研究ノートが合成数を誤って非ヴィーフェリッヒ素数として扱うことはありません。
ヴィーフェリッヒ素数とは何か、なぜ法が p の二乗なのか
本エンドポイントはその定義をそのまま符号化します。法を p に緩めず、確率的証人に置き換えず、完全なモジュラ冪が 1 のときだけ is_wieferich を true にします。
入力契約、応答フィールド、エラーの扱い
重要な点として p は素数でなければなりません。候補が合成数—例えば 4、9、15—の場合、ハンドラは値を示して素数ではないと述べるメッセージで要求を拒否します。この設計は数学的定義(ヴィーフェリッヒ素数は素数の部分類)に合致し、クライアントが合成数の失敗を成功した false と誤読しないようにします。必須の整数フィールド p(別名 prime と n)を含む JSON 本体を POST してください。値は JSON 数値または十進数字列でよく、2 以上かつ JavaScript の安全整数上限以下の整数でなければなりません。小数、真偽値、空文字、欠落フィールドは指数計算の前に invalid_input で失敗します。成功時の本体には、数値としてエコーされた p、p 掛ける p の厳密な十進文字列 p_squared、p の二乗を法とする 2 の p 引く 1 乗の厳密な十進文字列 remainder、remainder が 1 のときだけ true の真偽値 is_wieferich、人が読める合同式 expression が含まれます。
ヴィーフェリッヒ素数チェッカーが役立つ場面
本能力は純粋な parse の tier A のため、成功する呼び出しはすべて決定的・オフラインで、モデルトークンなしの $0.002 です。p を素数かつ公開された安全範囲内に保ち、invalid_input をクライアント修正として扱い、将来のリファクタがモジュラ結果を静かに変えないよう remainder 文字列をテストに固定してください。
連携の活用例
既知の二つの例の授業確認
学習者に p を 1093 または 3511 として送り is_wieferich が true であることを確認させ、続けて 3、5、7 などの普通の素数と比較させます。
SEO ランディングと無料ブラウザウィジェット
同じ素数 p について無料経路が API の remainder とフラグに一致するヴィーフェリッヒ素数チェッカーページを提供します。
技術的な質問
チェッカーはどのような入力を受け付けますか?
単一の素数整数 p ≥ 2(フィールド p、別名 prime または n)を JSON 数値または数字列として、安全整数範囲内で受け付けます。素数でない値や不正な形式は invalid_input で失敗します。
p が素数でない場合はどうなりますか?
タスクは invalid_input で失敗します。ヴィーフェリッヒ素数は素数にのみ定義され、合成数は is_wieferich false として返すのではなく拒否されます。
2 はヴィーフェリッヒ素数ですか?
いいえ。2^{1} = 2 であり 2 mod 4 は 2 であって 1 ではないため、p が 2 のとき is_wieferich は false です。
ヴィーフェリッヒ素数チェッカーの料金は?
ブラウザツールは無料です。API リクエストは成功した呼び出しごとに前払い KIT 残高から $0.002、無効な入力は課金されません。