프로그래머가 보는 수학 - 소수와 합성수
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}")