Python 기초수학 Ⅰ

hh_binvely·2023년 2월 11일
0
post-thumbnail

약수와 소수

  • 약수
    • 어떤 수를 나누어 떨어지게 하는 수
    • 8의 약수 > 1, 2, 4, 8
  • 소수
    • 약수로 1과 자기 자신만은 가지는 수
    • 단, 1은 제외
    • ex > 3, 5, 7 등
  • 합성수
    • 1과 자기 자신 외에 다른 수로도 나뉘어지는 수

소인수

  • 소인수

    • 인수(약수) 중에서 소수인 숫자
    • 20의 약수 중 소인수 > 1, 2, 4, 5, 10, 20
  • 소인수분해

    • 1보다 큰 정수를 소인수의 곱으로 나타낸 것
    • 20의 소인수 분해 > 2^2 X 5
    num = int(input("숫자 입력 : "))
    
    n = 2
    while num >= n:
        if num % n == 0:
            print (n)
            num /= n
        else:
            n += 1

    최대공약수

  • 공약수

    • 두 개 이상의 수에서 공통된 약수를 의미
    • 12, 20의 공약수
      • 12 >> 1, 2, 3, 4, 6, 12
      • 20 >> 1, 2, 4, 5, 10, 20
  • 최대 공약수

    • 공약수 중 가장 큰수
  • 유클리드 호제법

    • x,y의 최대공약수는 y,r(x%y)의 최대공약수와 같다.
      • 나머지가 0일 때까지 나눗셈한다.

최소공배수

*공배수

  • 두 개 이상의 수에서 공통된 배수를 의미
  • 3, 5의 공배수 >> 15, 30, 45 ...
  • 최소공배수
    • 공배수 중 가장 작은 수
    • 3, 5의 최소공배수 >> 15
  • 소인수분해를 이용하면 구할 수 있다.
    • 최소공배수 : 공통인 소인수 거듭제곱에서 지수가 크고 공통아닌 수를 모두 곱한다.

🎯(내가 생각한) 유클리드 호제법 코딩

n1 = int(input("숫자 입력: "))
n2 = int(input("숫자 입력: "))

a = n1  #12
b = n2  #36

while True:
    c = a % b
    
    if c == 0:
        break
    else:
        a = b
        b = c
    
print (f'{n1}, {n2}의 최대공약수는 {b}')
#12, 36의 최대공약수는 12

0개의 댓글