Math World Lab

完全数・友愛数 — 古代から愛された神秘の数

自分自身を除く約数の和が自分と等しい「完全な数」、互いに結びついた「友愛数」の不思議

123=6220約数の和284σ(n) - n = n (完全数)
この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
完全数とは、自分自身を除く約数の和が自分と等しい数(例: 6 = 1+2+3)
2
2000年以上前から知られる完全数は現在でも48個しか見つかっていない(奇数の完全数は未発見)
3
友愛数とは互いの真の約数の和が相手と等しい数のペア(例: 220と284)

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

古代ギリシャのピタゴラスが「6は完全な数だ」と述べてから2500年以上、完全数への探求は止まっていない。奇数の完全数が存在するかどうかは今も世界中の数学者が解けていない未解決問題だ。

身につく武器・思考力

数の持つ神秘的な構造への感性・約数と倍数の深い理解・暗号理論や素数探索アルゴリズムの基礎

実社会・ITでの活躍現場

  • •GIMPS(Great Internet Mersenne Prime Search)でのメルセンヌ素数探索:完全数の発見と直結
  • •暗号理論におけるRSA暗号の基礎となる大きな素数の探索
  • •約数の列挙アルゴリズム:データ圧縮・素因数分解の実装基礎

Layer 1 — 直感・シミュレーター

「完全数チェック」に好きな数を入力して、その数の約数を全部足すといくつになるか確かめよう。1〜10000の範囲を「一括スキャン」すると、いくつの完全数が見つかるだろうか?さらに「友愛数ペア」ボタンで、互いに約数の和が相手と等しい不思議なペアを探してみよう。

好きな数を入力して完全数かチェック!

1〜10,000の中にある完全数はたった4つだけ!

6完全数

オイラー公式: 2¹ × (2² - 1) = 2 × 3

約数の和: 1 + 2 + 3 = 6

28完全数

オイラー公式: 2² × (2³ - 1) = 4 × 7

約数の和: 1 + 2 + 4 + 7 + 14 = 28

496完全数

オイラー公式: 2⁴ × (2⁵ - 1) = 16 × 31

約数の和: 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 = 496

8128完全数

オイラー公式: 2⁶ × (2⁷ - 1) = 64 × 127

約数の和: 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064 = 8128

直感チェック!ミニクイズ

次のうち、完全数はどれですか?

Layer 2 — 定義・受験・証明

定義

**完全数(Perfect Number)**とは、自分自身を除く正の約数(真の約数)の総和が、その数自身に等しい自然数のこと。

例: 66 の真の約数は 1,2,31, 2, 3 → 和 =1+2+3=6= 1 + 2 + 3 = 6 ✓ 例: 2828 の真の約数は 1,2,4,7,141, 2, 4, 7, 14 → 和 =1+2+4+7+14=28= 1+2+4+7+14 = 28 ✓

**友愛数(Amicable Numbers)**とは、2つの数 m,nm, n (m<n)(m < n) が「mm の真の約数の和 =n= n」かつ「nn の真の約数の和 =m= m」を満たすペアのこと。

例: 220220 と 284284 — 最も有名な友愛数ペア

公式・数理モデル

完全数の条件: σ(n)−n=n  ⟺  σ(n)=2n(σ(n) は n の全約数の和)友愛数の条件: σ(m)−m=n, σ(n)−n=m完全数とメルセンヌ素数の関係(オイラー):偶数の完全数=2p−1(2p−1) ただし(2p−1)は素数\text{完全数の条件: } \sigma(n) - n = n \iff \sigma(n) = 2n \text{(} \sigma(n) \text{ は } n \text{ の全約数の和)} \text{友愛数の条件: } \sigma(m) - m = n,\ \sigma(n) - n = m \text{完全数とメルセンヌ素数の関係(オイラー):} \text{偶数の完全数} = 2^{p-1}(2^p - 1)\ \text{ただし}(2^p - 1)\text{は素数}

証明・導出

**なぜ 66 と 2828 が完全数なのか(オイラーの公式による)**

p=2p = 2 のとき: 22−1(22−1)=2×3=62^{2-1}(2^2 - 1) = 2 \times 3 = 6 ← 33 は素数なので OK p=3p = 3 のとき: 23−1(23−1)=4×7=282^{3-1}(2^3 - 1) = 4 \times 7 = 28 ← 77 は素数なので OK p=5p = 5 のとき: 25−1(25−1)=16×31=4962^{5-1}(2^5 - 1) = 16 \times 31 = 496 ← 3131 は素数なので OK p=7p = 7 のとき: 27−1(27−1)=64×127=81282^{7-1}(2^7 - 1) = 64 \times 127 = 8128 ← 127127 は素数なので OK

次は p=11p = 11 だが 211−1=2047=23×892^{11}-1 = 2047 = 23 \times 89 で合成数 → 完全数にならない 次の完全数 3355033633550336(p=13p=13 の場合)までジャンプする。

**友愛数 220 と 284 の確認** 220220 の真の約数: 1,2,4,5,10,11,20,22,44,55,1101, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 → 和 =284= 284 ✓ 284284 の真の約数: 1,2,4,71,1421, 2, 4, 71, 142 → 和 =220= 220 ✓

押さえておきたいポイント

  • 完全数は現在48個しか見つかっていない(2024年時点)— 偶数の完全数はすべてメルセンヌ素数と対応する
  • 奇数の完全数は1つも見つかっていない — 存在しない、または10^{1500}より大きいと推測されるが未証明
  • 友愛数のペアは約1.2万組が知られているが、奇数同士の友愛数ペアは1組も見つかっていない
  • 古代ピタゴラス教団は「220と284は友情の象徴」と信じていた — 中世では指輪や護符に刻まれた
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

GIMPSプロジェクト — 世界最大の分散コンピューティングによるメルセンヌ素数探索

完全数の発見はメルセンヌ素数の発見と同義。GIMPS(Great Internet Mersenne Prime Search)では世界中のボランティアPCを結集して素数を探索している。最新の最大素数(2^136279841 - 1、2024年発見)も完全数と対応する。約数の列挙は暗号解読・因数分解アルゴリズムの基礎技術でもある。

1// 完全数・友愛数の探索アルゴリズム(TypeScript)
2
3/** 真の約数の和を返す(n自身を除く) */
4function sumOfProperDivisors(n: number): number {
5 if (n <= 1) return 0;
6 let sum = 1; // 1は必ず約数
7 const sqrtN = Math.sqrt(n);
8 for (let i = 2; i <= sqrtN; i++) {
9 if (n % i === 0) {
10 sum += i;
11 if (i !== n / i) sum += n / i;
12 }
13 }
14 return sum;
15}
16
17/** 完全数かどうか判定 */
18function isPerfect(n: number): boolean {
19 return n > 1 && sumOfProperDivisors(n) === n;
20}
21
22/** 1〜limit の完全数を列挙 */
23function findPerfectNumbers(limit: number): number[] {
24 const perfects: number[] = [];
25 for (let n = 2; n <= limit; n++) {
26 if (isPerfect(n)) perfects.push(n);
27 }
28 return perfects;
29}
30
31/** 1〜limit の友愛数ペアを列挙 */
32function findAmicablePairs(limit: number): [number, number][] {
33 const pairs: [number, number][] = [];
34 for (let m = 2; m <= limit; m++) {
35 const n = sumOfProperDivisors(m);
36 // m < n かつ σ(n)-n = m を満たすかチェック
37 if (n > m && n <= limit && sumOfProperDivisors(n) === m) {
38 pairs.push([m, n]);
39 }
40 }
41 return pairs;
42}
43
44// 実行例
45console.log("完全数(〜10000):", findPerfectNumbers(10000));
46// → [6, 28, 496, 8128]
47
48console.log("友愛数ペア(〜10000):", findAmicablePairs(10000));
49// → [[220, 284], [1184, 1210], [2620, 2924], [5020, 5564], [6232, 6368]]
50
51// オイラーの公式でメルセンヌ完全数を生成
52function mersennePerfect(p: number): bigint {
53 const mp = (2n ** BigInt(p)) - 1n;
54 return (2n ** BigInt(p - 1)) * mp;
55}
56
57// p=2,3,5,7,13...(メルセンヌ素数の指数)
58[2, 3, 5, 7, 13, 17, 19, 31].forEach(p => {
59 console.log(`p=${p}: 完全数 = ${mersennePerfect(p)}`);
60});
61// p=2: 6
62// p=3: 28
63// p=5: 496
64// p=7: 8128
65// p=13: 33550336
この単元につながる学習ロードマップ
前提となる単元(振り返り)

前提知識なしでここから始められます!

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

Max 92321
関連度高数の不思議・パズル

コラッツ予想と3n+1の未解決世界

偶数は半分、奇数は3倍+1。世界中の大数学者を悩ませ続ける魔の数列

6174202699938532495
関連度高数の不思議・パズル

カプレカ数と6174のブラックホール

並び替えて引き算を繰り返すと、どんな数も必ず「6174」に吸い込まれる数の神秘

12345678930.1%
関連度高数の不思議・パズル

ベンフォードの法則と不正会計検知

自然界の数字の先頭はなぜか「1」が30%を占める。脱税・データ捏造を見破る数理

同じレベルで次に挑戦したいトピック

2ⁿ - 1 手
同レベル推薦数の不思議・パズル

ハノイの塔と再帰・指数爆発

3本の柱と円盤パズル。再帰的思考と2ⁿ-1手の爆発的宇宙を解き明かす

♞全マス巡歴Warnsdorff
同レベル推薦数の不思議・パズル

ナイト・ツアーとグラフ巡歴パズル

チェスの騎士で全マスを1度ずつ踏破せよ。ハミルトン路と貪欲探索の極致

全体で逆転!各層 A > B合算 A < B
同レベル推薦数の不思議・パズル

シンプソンのパラドックスと統計の錯覚

個別グループでは新薬Aが勝っているのに、合算すると従来薬Bが勝つ!?因果推論の罠

工学・実社会での応用先でつながるトピック

工学・実践連携小学校・算数

最小公倍数・最大公約数

数直線に並ぶ倍数と、ユークリッドの互除法で公約数を探る

xy122436
工学・実践連携中学数学

関数の概念と対応表

「1つの入力にはただ1つの出力」というルールを対応表で確かめる

🎂🎂MATCH!わずか23人で 50.7%
工学・実践連携中学数学

誕生日問題(直感に反する確率のパラドックス)

「わずか23人で50%以上が同じ誕生日?」人間の直感がバグる組み合わせ爆発の謎

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。