完全数チェッカー
数が真の約数の和に等しいかを調べます。28は1、2、4、7、14を足すと28になるので完全数です。約数、その和、素因数分解もあわせて表示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 28
- 真の約数の和
- 28
- 真の約数
- 1, 2, 4, 7, 14
完全数とは、真の約数(n 自身を除く正の約数すべて)の和が n と等しい正の整数です。6 は 1+2+3=6 なので完全数、28 は 1+2+4+7+14=28 なので完全数、12 は真の約数の和が 16 なので完全数ではありません。演算は完全に決定的で、ネットワークも乱数も時刻も使いません。コンピュータ代数システムを導入する必要はありません。
完全数とは何か、判定はどう決まるか
正の整数 n の真の約数とは、n を割り切る正の整数のうち n より真に小さいものです。その和がアリクォート和 s(n) です。同様に、n を含むすべての正の約数の和を sigma(n) とすれば、s(n) は sigma(n) から n を引いた値に等しくなります。
エウクレイデスとニコマコス以来の古典的定義では、s(n) が n に等しいとき完全、n より小さいとき不足、n を超えるとき過剰と呼びます。本判定器は完全数かどうかだけに答えます。1 は真の約数の集合が空で和が 0 なので完全数ではありません。
素数 p の真の約数の和は 1 なので、素数は決して完全数になりません。偶数完全数は、2^p−1 が素数であるとき 2^{p−1}(2^p−1) というエウクレイデス–オイラー形でメルセンヌ素数と強く結びつきます。6、28、496、8128 が最初のなじみ深い例です。
本ツールは候補を近似したり無作為抽出したりしません。試行割り算で n を一度因数分解し、各素冪の幾何級数を掛けて sigma(n) を得て n を引き、同じ因数分解から真の約数を列挙し、整数の厳密な等号でブール値を定めます。
学習・競技・自動化における完全数判定の位置づけ
学習者は約数・豊富性のクラス・数論の初期史を学ぶときに完全数に出会います。教員は 6・28・496 が完全か問うワークシートの解答キーを作り、12 や 18 と対比でき、不透明な電卓アプリに頼る必要はありません。
開発者は同じ契約で数論ライブラリのサンプルデータを検証したり、既知の完全数シードを主張するプロパティテストをゲートしたり、授業デモの前に整数が本当に完全数かを事前確認したりします。競技練習では OEIS リストをハードコードせずに解を照合できる、完全所属の高速オフライン源がしばしば必要です。
カタログパズルや余暇数学コンテンツを正規化するデータパイプラインは、約数の和と値が等しい前提のステップの前に非完全シードを拒否することがあります。試行割り算が対話的に保てるよう n を公開上限内に保ってください。暗号サイズの整数には専用の多倍長因数分解スタックが必要で、この軽量 parse 能力では足りません。
三分類の豊富性ラベル向けの兄弟検索トラフィックは別のアリクォート和ランディングが担います。
活用例
競技・CTF での完全数確認
完全数に言及するプログラミング競技や capture-the-flag の問題を解くとき、静的表を埋め込まずに完全所属をすばやく検証します。
エウクレイデス–オイラーの偶数完全数を教える
6・28・496・8128 が真の約数の等号を満たし、近くの合成数が満たさないことを示します。
よくある質問
完全数とは何ですか?
真の約数(自分自身を除くすべての正の約数)の和に等しい正の整数です。6 は 1 + 2 + 3 = 6 なので完全、28 は 1 + 2 + 4 + 7 + 14 = 28 なので完全です。
アリクォート和計算機との違いは?
アリクォート和ツールは s(n) を返し不足・過剰もラベル付けできます。完全数チェッカーを探す方はここに着地します。
アルゴリズムは乱数ですか?
いいえ。 決定的な試行割り算による因数分解と、真の約数の和と n の厳密な整数等号を使います。
28は完全数ですか?
はい。真の約数は1、2、4、7、14で、合計がちょうど28になります。28が2の2乗×7であることも表示されます。
素数が完全数になることはありますか?
ありません。素数の真の約数は1だけなので和は1で、元の数と等しくなりません。1も真の約数がないため完全数ではありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/perfect-number-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":28}'const res = await fetch("https://api.kit.forhosting.com/numth/perfect-number-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 28
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/perfect-number-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 28
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/perfect-number-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":28}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":28}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/perfect-number-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 28
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.perfect_number_check",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本機能は正の整数 n を素因数分解し、真の約数の昇順リストを組み立てて合計し、監査可能なように is_perfect フラグと和・因数分解を返します。宿題・競技対策・授業デモはブラウザで無料、採点スクリプトや余暇の数論パイプラインが同じ可否判定を必要とするときは成功リクエストあたり $0.002 の API を呼び出してください。
完全数とは何か、判定はどう決まるか
is_perfect は真の約数の和が n に等しいときだけ真、それ以外は偽です。教科書の答えと API の答えが食い違うことはありません。
API の呼び方と返却内容
n は 1 以上かつ 1 兆(10 の 12 乗)以下の正の整数です。宿題パイプライン、CTF の write-up、完全数ドリル、あるいは各マシンで因数分解を再実装せずに再現可能な可否判定が必要なあらゆる流れで使えます。エラーは定義域違反だけなので、過剰数や不足数の候補を提出する採点スクリプトが単純になります。必須フィールド n だけを含む JSON 本体を送ってください。同じフィールドの別名 number と value も受け付けるので、フォームとクエリ文字列が一つの契約を共有できます。成功時の応答には、受理した n、ブールの is_perfect、アリクォート合計 proper_divisor_sum、昇順の proper_divisors、prime と exponent を持つ factors の順序付きリストが含まれます。n 欠落・非整数・分数・1 未満・公開上限超過といった検証失敗は invalid_input を返し、課金されません。料金は成功リクエストあたり定額の $0.002 です(単位 item、限界単価ゼロ)。完全数でない整数でも is_perfect が false の成功応答が返ります。
学習・競技・自動化における完全数判定の位置づけ
本ページでは作業はすべてブラウザ内で完結し、API では成功照会あたり $0.002、失敗検証は無課金、応答後に何も保存しません。本ページは完全数チェッカーと明確な is_perfect フラグを求める方を対象とします。
連携の活用例
宿題:この整数は完全数か
学習者に整数を与え、手計算した真の約数の和と完全かどうかの可否を、決定的な API または無料ブラウザ結果と照合します。
技術的な質問
拒否される入力は?
n 欠落、非整数、1 未満、10^12 超は invalid_input を返します。これらの失敗は課金されません。完全数でない整数は is_perfect false で成功します。
完全数チェッカーは無料ですか?
ブラウザ版は無料でローカル実行です。API 呼び出しは前払い KIT 残高を使い、成功1回あたり $0.002、失敗タスクは課金されません。