整数の性質(約数・ユークリッド・n進法)

整数の性質(約数・ユークリッド・n 進法)― 整数だけの世界のルール

まず、身近なところから

コンピュータは 0 と 1 だけ(2 進法)で数を表す。時計は 60 でくり上がる。暗号は「大きな数を素因数分解するのが難しい」ことを使う。
整数には、実数にはない わり算の余り・約数・倍数 の構造がある。それを扱うのが整数の性質。

約数の個数 ― 素因数分解から数える

N = p^a × q^b(p、q は素数)のとき

例 1 72 = 2³ × 3² → (3 + 1)(2 + 1) = 12 個
理由: 約数は 2 を 0〜3 個(4 通り)、3 を 0〜2 個(3 通り)選んでかけたもの。4 × 3 = 12。

 2⁰ 2¹ 2² 2³   ← 4 通り
 ×
 3⁰ 3¹ 3²      ← 3 通り      → 12 個

約数の総和も同じ発想で (1 + 2 + 4 + 8)(1 + 3 + 9) = 15 × 13 = 195。

ユークリッドの互除法 ― 大きな数の最大公約数

221 と 91 の最大公約数を素因数分解なしで求める。
大きい数を小さい数でわり、「わる数」と「余り」で同じことをくり返す。余りが 0 になったときの「わる数」が答え。

 221 = 91 × 2 + 39
  91 = 39 × 2 + 13
  39 = 13 × 3 + 0    ← 余り 0。直前のわる数 13 が最大公約数

なぜ? 「221 と 91 の公約数」=「91 と 39 の公約数」(221 − 91 × 2 = 39 だから)。数が小さくなるまで続けられる。

一次不定方程式 ― ax + by = c の整数解

例 2 3x + 5y = 1 の整数解
x = 1, 2, … と入れて y が整数になるものを探す: x = 2 のとき 6 + 5y = 1 → y = −1。(2, −1) が 1 組。
一般解は x = 2 + 5k、y = −1 − 3k(k は整数)。x を 5 増やして y を 3 減らすと、3 × 5 − 5 × 3 = 0 でつり合う。

余りと合同式

a と b を m でわった余りが同じとき a ≡ b (mod m) と書く。
便利な性質: 余りどうしを計算してよい(積の余り = 余りの積の余り)。

例 3 7⁴ を 5 でわった余り
7 ≡ 2 (mod 5) → 7⁴ ≡ 2⁴ = 16 ≡ 1。7⁴ = 2401 を計算しなくてよい。

n 進法 ― 位取りの底を変える

10 進法は「10 でくり上がる」。2 進法は「2 でくり上がる」。

n 進 → 10 進

各位に n の累乗をかけてたす。
例 4 1011₍₂₎ = 1 × 8 + 0 × 4 + 1 × 2 + 1 × 1 = 11

 1    0    1    1
 2³   2²   2¹   2⁰
 8 +  0 +  2 +  1 = 11

10 進 → n 進

n でわり続けて、余りを下から 読む。
例 5 11 を 2 進法に

 2 ) 11   余り 1  ↑
 2 )  5   余り 1  │ 下から読む
 2 )  2   余り 0  │
 2 )  1   余り 1  │
      0           → 1011

練習してみよう

  1. 143 と 91 の最大公約数 → 143 = 91 + 52、91 = 52 + 39、52 = 39 + 13、39 = 13 × 3 → 13
  2. 2² × 5³ の約数の個数 → 3 × 4 = 12
  3. 201₍₃₎ を 10 進で → 2 × 9 + 0 + 1 = 19
  4. 13 を 2 進法で → 1101
  5. 3⁵ を 7 でわった余り → 243 = 7 × 34 + 5 → 5(3² ≡ 2、3⁴ ≡ 4、3⁵ ≡ 12 ≡ 5)
  6. 5x + 8y = 2 で x が正で最小 → x = 2: 10 + 8y = 2 → y = −1 → x = 2

よくある間違い

練習の前に

互除法、約数の個数、n 進 ↔ 10 進、累乗の余り、不定方程式の最小の正の x が 20 問。答えは整数(n 進法の答えは数字だけ)。
互除法は「わる数と余り」を次の行に持っていく。