프로그래머가 보는 수학 - 인수와 소인수
2022. 5. 22. 10:20ㆍ카테고리 없음
728x90
사전지식 : https://aaaag.tistory.com/20
프로그래머가 보는 수학 - 약수와 배수
약수 : 어떤 수가 나누어 떨어지는 수 더보기 8 == 1,2,4,8의 약수 나누어 떨어진다라는 말의 의미 : 어느 숫자로 나누었을때 결과가 0이라는 의미 8을 나누었을때 결과가 0이 되는 수들을 약수라 함
aaaag.tistory.com
사전지식 : https://aaaag.tistory.com/21
프로그래머가 보는 수학 - 소수와 합성수
사전 지식 : https://aaaag.tistory.com/20 소수 : 약수가 1과 자기 자신만 있는 수 더보기 2 == 1, 2 3 == 1, 3 5 == 1, 5 약수의 개수가 2개라면 소수. 다른 표현으론 1과 자기자신으로만 나누어 떨어지는 수를..
aaaag.tistory.com
인수 : 어떤 수나 식을 곱하기로 표현 가능한 각각의 것
더보기
- 8 == 1 * 8
- 8 == 2 * 4
- 8은 1 * 8 또는 2 * 4로 표현 가능 함으로 각각의 인수는 1, 2, 4, 8
- 약수를 구할때 8일 경우 나누는 수들이 약수
- 8 % 1 = 0
- 8 % 2 = 0
- 8 % 4 = 0
- 8 % 8 = 0
- [나눠지는수] % [나누는수] = [나머지]
- 1, 2, 4, 8 == 나누는수가 약수
- 인수는 곱하기, 약수는 나누기의 수들로 생각하면 쉬움
소인수 : 인수중 소수인 수
프로그래밍 구현
# -*- coding: utf-8 -*-
number = int(input())
resultTuple = ()
maxLoop = number + 1
for leftNumber in range(1, maxLoop):
#TODO: (현재 인수 * 2) < 입력받은 수의 반의 의미
#TODO: 8일 경우 1~8까지 loop를 돌때 8의 반은 1~4
#TODO: 현재 인수가 5일 경우 반 이상의 숫자를 검사할려는 경우 임으로 의미 없음
result = leftNumber * 2
if result > number:
break
for rightNumber in range(leftNumber, maxLoop):
result = leftNumber * rightNumber
if result == number:
resultTuple = resultTuple + (leftNumber, rightNumber)
break
if len(resultTuple) == 2:
print(f"prime factor : {resultTuple}")
else:
print(f"factor : {resultTuple}")