프로그래머가 보는 수학 - 소수와 합성수

2022. 5. 21. 16:27카테고리 없음

728x90

사전 지식 : https://aaaag.tistory.com/20

 

프로그래머가 보는 수학 - 약수와 배수

약수 : 어떤 수가 나누어 떨어지는 수 더보기 8 == 1,2,4,8의 약수 나누어 떨어진다라는 말의 의미 : 어느 숫자로 나누었을때 결과가 0이라는 의미 8을 나누었을때 결과가 0이 되는 수들을 약수라 함

aaaag.tistory.com


소수 : 약수가 1과 자기 자신만 있는 수


[예1]
  • 2 == 1, 2
  • 3 == 1, 3
  • 5 == 1, 5
  • 약수의 개수가 2개라면 소수. 다른 표현으론 1과 자기자신으로만 나누어 떨어지는 수를 소수라 함
  • 2를 제외한 모든 짝수는 소수가 될수 없다. 왜냐면 4 이상부터는 1,2를 약수로 가지고 있기 때문에 약수의 개수가 3개 이상 임으로 소수가 불가능
  • 반대로 모든 홀수는 약수가 아니다. 9의 경우 1, 3, 9를 약수로 같는데 약수의 개수가 3개 이상이기 때문

합성수 : 약수가 3개 이상인 수


[예1]
  • 4 == 1, 2, 4
  • 6 == 1, 2, 3, 6
  • 8 == 1, 2, 4, 8
  • 약수의 개수가 3개 이상이면 합성수. 다른 표현으론 1보다 큰 자연수중 소수가 아닌 수
  • 2가 아닌 모든 짝수는 합성수다
  • 반대로 모든 홀수는 합성수가 아니다. 5의 경우 1, 5를 약수로 같는데 약수의 개수가 2개이기 때문

프로그래밍 구현

# -*- coding: utf-8 -*-
number = int(input())

resultTuple = ()
maxLoop = number + 1
for value in range(1, maxLoop):
    result = number % value
    if result == 0:
        resultTuple = resultTuple + (value,)

    if len(resultTuple) >= 3:
        break

if len(resultTuple) == 1:
    print(f"one : {number}")
elif len(resultTuple) == 2:
    print(f"prime number : {number}")
else:
    print(f"composition number : {number}")