カーマイケル関数計算機
λ(15)は4です。15と互いに素な数を4乗すると、15で割った余りは必ず1になります。一方、オイラーのφ(15)は8です。18桁までの正の整数を入力すると、λ(n)と素因数分解が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 15
- ラムダ
- 4
- オメガ
- 2
カーマイケル関数λ(n)は、オイラーのトーシェント関数よりも鋭い問いに答えます:nと互いに素なすべての整数aがa^m ≡ 1 (mod n)を満たす最小の正の指数mは何か?この単一の整数は、法nの乗法群の単位元のなす群の指数であり、RSAの鍵スケジュール、素数性に関連する証明、法の位数に関する授業の演習に登場します。この計算機は正の整数を受け取り、BigInt算術で決定的に因数分解し、λに対する素数べきの公式を適用し、最小公倍数を正確な10進文字列として返します。
カーマイケル関数が測るもの
オイラーのトーシェントφ(n)は、法nに関してnと互いに素な剰余類の数を数えます。カーマイケルのλ(n)はその群の指数です。すべての単位元の位数の最小公倍数です。
定義によりλ(n)は常にφ(n)を割り切り、素数と奇素数の2倍については両者は一致しますが、2のべきや複数の素数べきの積についてはλの方が厳密に小さいことがよくあります。
閉形式は、nの素因数分解が分かれば初等的です:λ(1)は1、λ(2)は1でλ(4)は2、2のより高いべきについてはλ(2^k)は2^(k-2)、奇素数のべきについてはλ(p^k)はφ(p^k)、つまりp^(k-1)(p-1)に等しく、一般のnについては大域的な値は各素数べきの因子における局所値の最小公倍数です。
λ(n)が分かれば、すべての候補指数を試すことなくnと互いに素な任意のaの位数を上界で押さえられるため、数論の講義や暗号のデモではトーシェントに並ぶ第一級の相棒として扱われます。
活用例
宿題とコンテストの法の位数の確認
返されたλ(n)を手計算した局所値の最小公倍数と比較することで、(Z/nZ)*の指数についての学生やコンテストの解答を検証します。
RSAと暗号の授業デモ
おもちゃのRSAの法に使われる2のべきや複数素数の積で、λ(n)がφ(n)より厳密に小さくなり得ることを示します。
パイプライン向け数論ヘルパー
位数の上界、トーシェントの相互確認、自動化された数学パイプラインでのバッチ指数表のために、正確なλ(n)と素数べきを出力します。
よくある質問
なぜnは1以上でなければなりませんか?
λ(n)は正の整数に対して定義されます。λ(1)は1と定義されます。
λ(n)はオイラーのトーシェントφ(n)とどう違いますか?
φ(n)は法nに関する単位の数を数えます。λ(n)はその群の指数です。λ(n)は常にφ(n)を割り切り、2のべきや複数素数のnではしばしばより小さくなります。
λ(n)は実際に何の役に立ちますか?
λ(n)は共通の指数で、nと互いに素などの数もλ(n)乗すると余りが1になります。そのため、指数を1つずつ試さなくても、こうした数の位数の上限が分かります。
λ(n)はどのように計算しますか?
nを素数のべき乗に分解し、それぞれの値を求めてから最小公倍数でまとめます。15なら3と5の部分がそれぞれ2と4になるので、λ(15)は4です。
どれくらい大きな数まで入力できますか?
18桁までの正の整数を、コンマや空白、指数表記を使わずに入力できます。それを超えると、見込みのない計算を始める前にすぐ止まります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/carmichael-function \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":"15"}'const res = await fetch("https://api.kit.forhosting.com/numth/carmichael-function", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": "15"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/carmichael-function",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": "15"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/carmichael-function", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":"15"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":"15"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/carmichael-function", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": "15"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.carmichael_function",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_digits | 18 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
結果は浮動小数点の丸めにも通信にも実時間にも一切依存しないため、無料のブラウザ経路と有料のAPI経路は同じnに対して同一のJSONを生成します。
カーマイケル関数が測るもの
このエンドポイントは、使用した因数分解とともにその整数を返すため、不透明なブラックボックスを信用するのではなく、導出のすべてのステップを監査できます。
計算機の呼び出し方とλ(n)の読み取り方
JavaScriptの安全な整数、またはカンマ・空白・指数表記のない単純な10進数文字列です。値は1以上の整数でなければなりません。内部では、エンジンはnをBigIntに昇格させ、残りの共役因子の平方根まで6k±1の試し割りホイールで因数分解し、各素数べきに局所的なカーマイケルの公式を評価し、それらの局所値を正確な最小公倍数で畳み込みます。公開されている18桁の桁数上限内に収めてください。単一のフィールドnを送信してください。0、負数、分数はinvalid_inputで拒否され、課金されません。レスポンスはnとlambdaを10進文字列として、昇順の{ base, exponent }のペアの配列であるfactors(nが1のときは空)、そして異なる素数底の個数であるomegaを運びます。利便性のため、エイリアスフィールド名numberとvalueも受け付けます。それを超えると、手に負えない探索でCPUを浪費する前に、リクエストは即座に失敗します。
λ(n)が実務で登場する場面
生成元が最大の位数を持つことの証明にλ(n)を使ったり、提案された普遍指数が本当にすべての単位を消すかを確認したり、ハッシュテーブルのサイズやチャレンジの法の群の指数を記録したりできます。パイプラインの作者は、この計算機を因数分解のステップの後に連鎖させることも、指数だけが必要な場合は単独で呼び出すこともできます。検証失敗は決して残高を消費しません。成功した計算のみが公開された$0.002を課金します。小さいnや中程度のnのインタラクティブな探索にはブラウザツールを、バックエンドやノートブック、バッチジョブがサブスクリプションなしで単一の前払いKIT残高のもとで多数の整数のλを計算しなければならない場合はAPIを使ってください。レスポンス中の構造化されたfactorsは、次に実行するトーシェントや根基の計算のための無料の素数べき分解としても使えます。
技術的な質問
このAPIでカーマイケル関数λ(n)をどう計算しますか?
フィールドnに1以上の整数(または10進文字列)を設定したオブジェクトをPOSTしてください。レスポンスは10進文字列としてのlambdaに加え、factorsとomegaを返します。
カーマイケル関数計算機は無料ですか?
ブラウザツールはあなたの端末上で無料で動作します。API呼び出しは成功したリクエストごとに$0.002の前払いKIT残高を使用し、無効な入力には課金されません。
結果はブラウザとAPIで決定的ですか?
はい。同じ純粋な因数分解と最小公倍数のルーチンが両方の経路を動かしているため、同一の入力は通信もランダム性も関与しない同一のJSONを生成します。