데이터

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

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

Chapter 01. 기초 수학

 

약수와 소수 (Divisors & Primes)

 

1. 약수 (Divisor)

  • 정의:
    어떤 수를 나누어떨어지게 하는 수 → 나머지가 0이 되는 수
  • 예시:
8 ÷ 1 = 8  
8 ÷ 2 = 4  
8 ÷ 4 = 2  
8 ÷ 8 = 1

따라서 8의 약수는 1, 2, 4, 8

  • 특징:
    • 모든 자연수는 1과 자기 자신을 약수로 가진다.
    • 어떤 수의 약수의 개수를 세면 그 수가 짝수인지, 제곱수인지도 판별할 수 있다.

2. 소수 (Prime Number)

  • 정의:
    1과 자기 자신만을 약수로 가지는 수 (단, 1은 제외)
  • 예시:
 
2, 3, 5, 7, 11, 13, 17, 19 ...
  • 특징:
    • 2는 유일한 짝수 소수
    • 다른 모든 짝수는 2로 나누어지므로 소수가 아님
    • 소수는 수학뿐만 아니라 암호화, 보안, 해시 함수 등에서도 매우 중요한 역할을 한다.

3. 실습 — 소수 찾기

1부터 30까지의 숫자 중 소수를 찾는 법

  • 2를 제외한 2의 배수 제거
  • 3을 제외한 3의 배수 제거
  • 5를 제외한 5의 배수 제거
  • 7을 제외한 7의 배수 제거

에라토스테네스의 체 알고리즘의 기본 원리


4. 실습 — 몫과 나머지가 모두 소수인 수

1부터 30까지의 수 중 5로 나눈 몫과 나머지가 모두 소수인 숫자 찾기

  • (5 × 몫) + (5보다 작은 소수) 형태로 계산
  • 수학적 사고력과 조건 필터링의 결합

5. 파이썬으로 구현하기

(1) 약수 구하기

 
num = int(input("숫자를 입력하세요: "))
for i in range(1, num + 1):
    if num % i == 0:
        print(i, end=' ')

➜ num % i == 0 조건을 통해 나누어떨어지는 수를 출력

(2) 소수 구하기

 
n = int(input("숫자를 입력하세요: "))
for i in range(2, n + 1):
    is_prime = True
    for j in range(2, i):
        if i % j == 0:
            is_prime = False
            break
    if is_prime:
        print(i, end=' ')

➜ 나눗셈으로 약수가 없는 수를 판별하여 소수 출력

 

 

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


 

💡 생각 정리

이번 강의는 수학적 개념을 프로그래밍적으로 연결하는 좋은 예시였다.
특히 약수와 소수는 단순한 수학 개념을 넘어서, 패턴과 조건을 탐색하는 논리적 사고를 요구한다.

파이썬으로 약수나 소수를 구하는 과정을 직접 코딩하면서,

  • 반복문(for)과 조건문(if)의 구조적 이해
  • 나눗셈 연산자(%)의 활용
  • 논리 플래그(is_prime)의 응용
    을 자연스럽게 익힐 수 있었다.

수학 문제를 코드로 해결하는 과정이 단순 계산이 아니라, “논리적 사고를 구현하는 사고 실험”이라는 점이 가장 인상적이었다.


🚀 적용점

 

  • 기초 알고리즘 연습:
    약수와 소수 판별은 알고리즘 기초 문제로, 시간 복잡도 개선 연습에 적합하다.
    (O(n²) → O(√n) 최적화 가능)
  • 실전 응용:
    • 암호학(Cryptography) : 소수의 성질을 활용한 공개키 암호
    • 데이터 분석 : 나머지 연산(%)을 이용한 그룹 필터링, 샘플링
    • 코딩 테스트 : 조건 필터링 및 반복 구조 기본 문제로 자주 출제
  • 확장 실습 아이디어:
    • 사용자 입력 범위 내 모든 소수의 개수를 세는 함수 만들기
    • 소수를 리스트로 반환해 다른 계산(예: 소수의 합, 차이 등)에 활용하기
    • math.sqrt()를 활용해 효율적으로 소수를 판별하는 버전으로 개선

 

반응형