데이터

제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-02

Leah (리아) 2025. 10. 20. 01:01
반응형

Chapter 01. 기초 수학

 

소인수와 소인수분해 (Prime Factors & Factorization)

 

1. 소인수 (Prime Factor)

  • 정의:
    어떤 수의 약수 중에서 소수인 약수를 ‘소인수’라고 한다.
  • 예시:
    약수(인수) 소인수
    20 1, 2, 4, 5, 10, 20 2, 5
    12 1, 2, 3, 4, 6, 12 2, 3
    25 1, 5, 25 5
    41 1, 41 41

💡 즉, 약수 중에서도 소수만을 추려낸 것이 소인수이다.


2. 소인수분해 (Prime Factorization)

  • 정의:
    1보다 큰 정수를 소인수의 곱으로 표현하는 것을 소인수분해라고 한다.
  • 예시:
    소인수분해 거듭제곱 표현
    20 2 × 2 × 5 2² × 5
    12 2 × 2 × 3 2² × 3
    36 2 × 2 × 3 × 3 2² × 3²
    25 5 × 5
    41 41 41

💡 소인수분해는 수의 구조를 단순하게 표현하고, 약수나 배수를 쉽게 구하는 데 매우 유용하다.


3. 소인수분해와 약수의 관계

소인수분해를 하면 약수를 빠르고 정확하게 구할 수 있다.

예를 들어

20 = 2² × 5

조합 가능한 인수의 곱을 구하면:
→ 1, 2, 4, 5, 10, 20

즉, 소인수분해는 단순 계산을 넘어서 모든 약수의 패턴을 체계적으로 파악할 수 있게 해준다.


4. 실습 문제 예시

소인수분해를 이용하여 아래 수들의 약수를 구해보자.

약수
14 1, 2, 7, 14
154 1, 2, 7, 11, 14, 22, 77, 154
1547 1, 7, 13, 17, 91, 119, 221, 1547
2025 1, 3, 5, 9, 15, 25, 27, 45, 75, 81, 135, 225, 405, 675, 2025

5. 파이썬으로 구현하기

(1) 소인수분해 기본 구조

사용자가 입력한 수를 소인수의 곱으로 표현하는 프로그램

n = int(input("소인수분해할 수를 입력하세요: "))
i = 2
while n > 1:
    if n % i == 0:
        print(i, end=' ')
        n = n // i
    else:
        i += 1

➜ 나누어떨어질 때마다 i를 출력하고, 나눠진 몫을 다시 검사
➜ 모든 소인수가 순서대로 출력된다

(2) 응용 문제 — 72 × x = y² 일 때, x의 최소값 구하기

문제 풀이 개념:
72의 소인수분해 → 2³ × 3²
짝수 지수가 되도록 만들어야 제곱수가 된다.

 
2³ × 3² = (2² × 3²) × 2¹  
따라서 x = 2 → 최소값은 2

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

이번 강의는 단순한 수 분해가 아니라, 수의 구조를 읽는 사고력 훈련이었다.
소인수분해를 통해 하나의 수가 어떤 소수들로 구성되어 있는지, 그 내부의 규칙을 시각적으로 파악할 수 있다는 점이 흥미로웠다.

특히 파이썬으로 직접 구현해보니,

  • 반복문(while)과 조건문(if)의 흐름
  • 나눗셈(//)과 나머지(%)의 차이
  • 수학 개념을 코드 로직으로 전환하는 사고 과정이 자연스럽게 연결되었다.

소인수분해는 단순 계산보다 논리적 분해와 재구성의 사고를 키워주는 기초 훈련이었다.


🚀 적용점

  • 프로그래밍 활용:
    • 소인수분해 알고리즘은 암호화(예: RSA), 데이터 압축, 해시 충돌 방지 등에 쓰인다.
    • while 반복 구조는 효율적인 알고리즘 사고의 기본.
  • 학습 심화 방향:
    • 소인수분해 결과를 리스트나 딕셔너리 형태로 저장하여,
      특정 소수의 지수를 쉽게 확인할 수 있게 확장 가능.
    • 거듭제곱 형태를 자동으로 정리하는 함수화 연습도 추천.
  • 수학적 사고 확장:
    • 약수, 배수, 최소공배수, 최대공약수를 모두 소인수분해 기반으로 통합적 접근 가능.

👉 이번 강의는 “수학적 원리 + 코드 사고력”을 동시에 다지는 완벽한 기초였다.

반응형