수학

MATH / 초급 5번

약수와 배수·소인수분해: 수를 곱으로 쪼개 두기

나머지가 0인 자리에서 출발해 약수와 배수를 세우고, 에라토스테네스의 체로 100까지 걸러 소수를 얻은 뒤, 소인수분해로 최대공약수와 최소공배수를 읽어 냅니다.

PALDYN Team17 MIN READ

지난 글에서 나눗셈을 a=b×q+ra = b \times q + r 과 0≤r<b0 \le r < b 로 적었습니다. 그리고 나머지 rr 이 0이면 나누어떨어진다고 부르기로 했습니다.

이 글은 그 자리에서 곧장 출발합니다. 나머지가 0인 짝들을 모으면 수마다 고유한 성질이 보이고, 그 성질을 이용하면 어떤 자연수든 곱으로 쪼개 둘 수 있습니다. 한번 쪼개 두면 두 수의 관계를 보는 일이 훨씬 쉬워집니다.

약수와 배수는 같은 관계의 두 이름

12=3×412 = 3 \times 4 입니다. 즉 12를 3으로 나누면 나머지 없이 떨어집니다. 이때 이렇게 부릅니다.

  • 33 은 1212 의 약수입니다.
  • 1212 는 33 의 배수입니다.

두 이름이 서로 다른 관계를 가리키는 것이 아닙니다. 같은 하나의 사실을 어느 쪽에서 부르느냐의 차이입니다. "aa 가 bb 로 나누어떨어진다"라는 한 문장을 bb 쪽에서 보면 약수, aa 쪽에서 보면 배수입니다.

36의 약수를 빠짐없이 찾기

약수를 찾을 때 하나씩 나눠 보다 보면 빠뜨리기 쉽습니다. 짝지어 찾으면 빠뜨리지 않습니다.

1부터 차례로 나눠 보되, 나누어떨어질 때마다 몫도 함께 약수 목록에 적습니다.

나눈 수 몫 얻은 짝
1 36 1, 36
2 18 2, 18
3 12 3, 12
4 9 4, 9
5 — 나누어떨어지지 않음
6 6 6 (자기 자신과 짝)

6에서 나눈 수와 몫이 같아졌습니다. 여기서 멈춥니다. 더 가 봐야 이미 적은 것들이 순서만 바꿔 다시 나올 뿐입니다. 7로 나누면 안 떨어지고, 9로 나누면 몫이 4인데 이미 적었습니다.

36의 약수를 짝지어 찾기

그래서 36의 약수는 1,2,3,4,6,9,12,18,361, 2, 3, 4, 6, 9, 12, 18, 36 의 아홉 개입니다.

소수 — 약수가 둘뿐인 수

약수의 개수를 세어 보면 수마다 다릅니다. 36은 아홉 개였습니다. 그런데 아무리 세어도 두 개뿐인 수들이 있습니다.

  • 77 의 약수: 1,71, 7
  • 1313 의 약수: 1,131, 13
  • 22 의 약수: 1,21, 2

1보다 크고 약수가 1과 자기 자신뿐인 수를 소수라고 부릅니다. 소수가 아닌, 즉 약수를 셋 이상 가진 수는 합성수라고 부릅니다.

1은 왜 소수가 아닌가

1의 약수는 1 하나뿐입니다. 정의의 "1보다 크고"에 걸려서 빠지는데, 그 조건을 왜 넣었는지가 중요합니다. 약속이라서가 아니라, 넣으면 뒤에 나올 것이 깨지기 때문입니다.

곧 볼 것이지만 어떤 수든 소수의 곱으로 쪼갤 수 있고, 그 쪼개는 방법은 순서를 빼면 한 가지뿐입니다. 12=2×2×312 = 2 \times 2 \times 3 이고, 순서를 바꾼 것 말고는 다른 방법이 없습니다.

여기에 1을 소수로 끼워 주면 어떻게 될까요.

12=2×2×3=1×2×2×3=1×1×2×2×3=⋯12 = 2 \times 2 \times 3 = 1 \times 2 \times 2 \times 3 = 1 \times 1 \times 2 \times 2 \times 3 = \cdots

1을 몇 개든 붙일 수 있으니 쪼개는 방법이 무한히 많아집니다. '한 가지뿐'이라는 성질이 사라집니다. 그 성질이 뒤에서 계속 쓰이기 때문에, 1을 소수에서 빼는 쪽을 택한 것입니다.

에라토스테네스의 체로 100까지 걸러 보기

소수를 하나씩 판정하는 대신, 아닌 것을 지워 나가면 훨씬 빠릅니다. 에라토스테네스의 체는 그렇게 2부터 차례로 배수를 지워 소수만 남기는 방법입니다. 촘촘한 체로 걸러 알갱이만 남기는 그림에서 온 이름입니다.

100까지의 체

절차는 이렇습니다.

  1. 1을 따로 빼 둡니다. 소수도 합성수도 아닙니다.
  2. 남은 것 중 가장 작은 수 2를 소수로 확정하고, 2의 배수(4, 6, 8, …)를 전부 지웁니다. 자기 자신은 남깁니다.
  3. 아직 안 지워진 것 중 가장 작은 3을 소수로 확정하고, 3의 배수(6, 9, 12, …)를 지웁니다. 이미 지워진 것은 그냥 둡니다.
  4. 다음은 5(4는 이미 지워졌습니다), 그다음은 7.
  5. 7까지 하면 끝납니다.

왜 7에서 멈출까요. 다음 차례인 11의 배수를 지우려고 보면, 11×211 \times 2 부터 11×1011 \times 10 까지는 각각 2·3·5·7의 배수라 이미 지워졌습니다. 아직 안 지워진 첫 배수는 11×11=12111 \times 11 = 121 인데 이는 100을 넘습니다. 지울 것이 없으니 멈춥니다. 100까지 걸러려면 10을 곱해서 100이 되는 수, 즉 10 이하의 소수까지만 지우면 되는 것입니다.

남은 25개가 100 이하의 소수입니다.

2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,972, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97

소인수분해 — 곱으로 쪼개 두기

어떤 자연수를 소수들의 곱으로 적는 것을 소인수분해라고 합니다. 절차는 하나입니다. 나누어떨어지는 가장 작은 소수로 나누고, 몫에 대해 같은 일을 반복합니다. 몫이 1이 되면 끝입니다.

360의 소인수분해

360으로 해 봅니다. 2로 나눠 180, 또 2로 나눠 90, 또 2로 나눠 45. 이제 45는 2로 안 떨어지니 3으로 나눠 15, 또 3으로 나눠 5. 5는 5로 나눠 1. 끝입니다.

360=2×2×2×3×3×5360 = 2 \times 2 \times 2 \times 3 \times 3 \times 5

같은 소수가 여럿이면 위첨자로 줄여 적습니다. 2번 · 식을 읽는 순서에서 a2a^2 가 aa 를 두 번 곱한 것이라고 약속했으니, 그대로 읽으면 됩니다.

360=23×32×5360 = 2^3 \times 3^2 \times 5

위첨자는 그 소수로 몇 번 나눴는지를 센 것입니다. 2로 세 번, 3으로 두 번, 5로 한 번 나눴으니 이렇게 적힙니다.

그리고 앞에서 미리 말한 사실이 여기 붙습니다. 순서를 빼면 이 분해는 한 가지뿐입니다. 어떤 순서로 나눠 내려가도 결국 같은 소수들이 같은 개수만큼 나옵니다. 360을 3으로 먼저 나누기 시작해도 23×32×52^3 \times 3^2 \times 5 에 도착합니다. 이 사실은 증명하지 않고 결과로 받습니다 — 46번 · 증명 읽는 법에서 2\sqrt{2} 가 무리수임을 보일 때 이 성질을 쓰게 됩니다.

최대공약수와 최소공배수

두 수를 소인수분해해 두면, 두 수의 관계를 지수만 비교해서 읽어 낼 수 있습니다.

72=23×32120=23×3×572 = 2^3 \times 3^2 \qquad 120 = 2^3 \times 3 \times 5

최대공약수는 두 수를 모두 나누는 수 중 가장 큰 것입니다. 두 분해에서 양쪽에 다 있는 소수만 골라, 지수가 작은 쪽을 씁니다.

  • 2는 양쪽에 있습니다. 지수는 3과 3이니 작은 쪽 3 → 232^3
  • 3은 양쪽에 있습니다. 지수는 2와 1이니 작은 쪽 1 → 33
  • 5는 120에만 있습니다. 72를 나누지 못하니 제외합니다.

gcd⁡=23×3=24\gcd = 2^3 \times 3 = 24

최소공배수는 두 수의 배수 중 가장 작은 것입니다. 한쪽에라도 있는 소수를 전부 골라, 지수가 큰 쪽을 씁니다.

  • 2 → 지수 3과 3 중 큰 쪽 3 → 232^3
  • 3 → 지수 2와 1 중 큰 쪽 2 → 323^2
  • 5 → 120에만 있지만 넣습니다. 지수 1 → 55

lcm=23×32×5=360\text{lcm} = 2^3 \times 3^2 \times 5 = 360

작은 쪽을 고르면 둘 다 나누고, 큰 쪽을 고르면 둘 다의 배수가 됩니다. 이 한 문장이 두 절차를 모두 설명합니다.

두 값의 곱을 확인해 봅니다

24×360=864024 \times 360 = 8640 이고, 원래 두 수의 곱은 72×120=864072 \times 120 = 8640 입니다. 같습니다.

우연이 아닙니다. 지수를 보면 알 수 있습니다. 소수마다 두 지수 중 작은 쪽과 큰 쪽을 하나씩 골랐으니, 둘을 곱하면 결국 원래 두 지수를 다 쓴 것과 같습니다. 2에 대해 3+3=63 + 3 = 6, 3에 대해 1+2=31 + 2 = 3, 5에 대해 0+1=10 + 1 = 1. 그래서 최대공약수와 최소공배수의 곱은 언제나 원래 두 수의 곱입니다. 이것이 검산 방법이 됩니다 — 둘 중 하나를 구한 뒤 나머지를 곱셈으로 확인할 수 있습니다.

연습 문제

연습 1 — 체로 걸러 보기

1부터 100까지 열 칸씩 열 줄로 적고, 위의 절차대로 2·3·5·7의 배수를 지우세요. 남은 것이 25개인지 세어 보세요. 그다음 각 열이 어떤 모양인지 봐 두면 좋습니다 — 짝수 열은 2를 빼고 통째로 지워집니다.

연습 2 — 소인수분해 열

  1. 8484
    22×3×72^2 \times 3 \times 7
  2. 100100
    22×522^2 \times 5^2
  3. 144144
    24×322^4 \times 3^2
  4. 210210
    2×3×5×72 \times 3 \times 5 \times 7
  5. 9797
    소수 — 더 쪼갤 수 없습니다.
  6. 360360
    23×32×52^3 \times 3^2 \times 5
  7. 512512
    292^9
  8. 10011001
    7×11×137 \times 11 \times 13
  9. 4545
    32×53^2 \times 5
  10. 630630
    2×32×5×72 \times 3^2 \times 5 \times 7

97이 소수인지 확인할 때는 체에서 배운 것을 씁니다. 10×10=10010 \times 10 = 100 이 97보다 크므로, 10보다 작은 소수 2·3·5·7로만 나눠 보면 됩니다. 넷 다 안 떨어지니 소수입니다.

1001은 손으로 하기 좋은 문제입니다. 2·3·5로는 안 떨어지고 7로 나누면 143, 143을 11로 나누면 13. 셋 다 소수이니 끝입니다.

연습 3 — 최대공약수와 최소공배수 열 쌍

각 쌍의 최대공약수와 최소공배수를 구하세요.

  1. (12,18)(12, 18)
    분해 22⋅32^2 \cdot 3 / 2⋅322 \cdot 3^2, 최대공약수 6, 최소공배수 36.
  2. (8,12)(8, 12)
    분해 232^3 / 22⋅32^2 \cdot 3, 최대공약수 4, 최소공배수 24.
  3. (15,25)(15, 25)
    분해 3⋅53 \cdot 5 / 525^2, 최대공약수 5, 최소공배수 75.
  4. (24,36)(24, 36)
    분해 23⋅32^3 \cdot 3 / 22⋅322^2 \cdot 3^2, 최대공약수 12, 최소공배수 72.
  5. (9,16)(9, 16)
    분해 323^2 / 242^4, 최대공약수 1, 최소공배수 144.
  6. (20,30)(20, 30)
    분해 22⋅52^2 \cdot 5 / 2⋅3⋅52 \cdot 3 \cdot 5, 최대공약수 10, 최소공배수 60.
  7. (14,21)(14, 21)
    분해 2⋅72 \cdot 7 / 3⋅73 \cdot 7, 최대공약수 7, 최소공배수 42.
  8. (48,60)(48, 60)
    분해 24⋅32^4 \cdot 3 / 22⋅3⋅52^2 \cdot 3 \cdot 5, 최대공약수 12, 최소공배수 240.
  9. (7,13)(7, 13)
    분해 77 / 1313, 최대공약수 1, 최소공배수 91.
  10. (72,120)(72, 120)
    분해 23⋅322^3 \cdot 3^2 / 23⋅3⋅52^3 \cdot 3 \cdot 5, 최대공약수 24, 최소공배수 360.

열 쌍 모두 같은 절차입니다. 각 쌍을 소인수분해한 뒤 지수의 작은 쪽을 골라 곱하면 최대공약수, 큰 쪽을 골라 곱하면 최소공배수입니다.

다섯 번째와 아홉 번째를 보세요. 공통된 소수가 하나도 없어서 최대공약수가 1이고, 최소공배수는 두 수의 곱이 됩니다. 이런 두 수를 서로소라고 부릅니다.

연습 4 — 곱으로 검산하기

위 열 쌍에 대해 (최대공약수)×(최소공배수)(\text{최대공약수}) \times (\text{최소공배수}) 와 원래 두 수의 곱을 각각 구해 맞춰 보세요.

답. 열 쌍 모두 같습니다. 예를 들어 (48,60)(48, 60) 은 12×240=288012 \times 240 = 2880 이고 48×60=288048 \times 60 = 2880. (72,120)(72, 120) 은 24×360=864024 \times 360 = 8640 이고 72×120=864072 \times 120 = 8640 입니다.

정리

  • 약수와 배수는 "나누어떨어진다"는 한 사실을 양쪽에서 부르는 두 이름입니다. 약수는 1부터 짝지어 올라가다 두 수가 만나면 멈춥니다.
  • 소수는 1보다 크고 약수가 1과 자기 자신뿐인 수입니다. 1을 소수에 넣으면 곱으로 쪼개는 방법이 무한해지므로 뺍니다.
  • 에라토스테네스의 체로 100까지 걸러 소수 25개를 얻었습니다. 10 이하의 소수까지만 지우면 됩니다.
  • 소인수분해는 작은 소수부터 나눠 내려가는 절차이고, 순서를 빼면 그 결과는 한 가지뿐입니다.
  • 최대공약수는 공통 소수의 작은 지수, 최소공배수는 모든 소수의 큰 지수입니다. 두 값의 곱은 원래 두 수의 곱과 같아서 검산에 씁니다.

여기까지가 수를 곱으로 쪼개 두는 이야기입니다. 다음 글부터는 수에서 도형으로 옮겨 가, 넓이를 '단위 정사각형을 몇 개 깔 수 있는가'로 정의하는 데서 시작합니다.


읽어주셔서 감사합니다. 😊

LATEST

수학의 최신 글

수학2026.09.07

양자화 오차: 격자 사상, 오차 분산, 이상치 채널

실수를 2^b개 격자에 사상할 때 오차의 분산이 왜 Δ²/12인지 유도하고, 그것이 비트당 6.02dB라는 SNR로 번역되는 과정을 실측과 대조했습니다. 이상치 하나가 나머지 값의 유효 비트를 어떻게 먹는지, 그리고 int4에서 성능이 무너지는 지점을 오차 예산으로 미리 계산하는 법까지.

중급18 MIN
수학2026.09.07

수치적으로 안정한 계산 패턴 모음

최댓값 빼기, 로그 공간, log1p·expm1, 분산의 두 공식, 정규화의 ε, fp32 누산, 역행렬 대신 solve — 프레임워크가 몰래 해 주는 일곱 가지를 하나씩 꺼내 각각 어떤 고장을 막는지 직접 재 봤습니다. 수식을 그대로 옮긴 코드가 왜 라이브러리보다 나쁜지에 대한 목록입니다.

중급22 MIN
수학2026.09.07

부동소수점은 어디서 새는가: 반올림, 상쇄, 더하는 순서

0.1 + 0.2가 0.3이 아닌 이유부터 시작해 머신 엡실론을 유도하고, 같은 16비트인데 fp16과 bf16이 서로 다른 지점에서 터지는 이유, 비슷한 수를 뺄 때 유효자리가 사라지는 파괴적 상쇄, 그리고 1,000만 개를 순서만 바꿔 더했을 때 오차가 백만 배 갈리는 실험까지 직접 재 봤습니다.

중급23 MIN