반응형
안녕하세요, 츄르 사려고 코딩하는 집사! 코집사입니다.
이번 글은 숫자가 주어졌을 때 그 숫자의 소인수를 구하는 문제입니다.
소인수 분해는 소수의 곱으로만 나타내는 것을 말합니다.
예를 들어, 16의 소인수 분해는 2X2X2X2 입니다.
다른 예로는 45의 소인수 분해는 3X3X5 입니다.
여기서 16의 소인수 분해에서 나온 2와 45의 소인수 분해에서 나온 3과 5는 소인수라고 합니다.
이처럼, 위의 예에서 13195의 소인수 분해는 5X7X13X29 이면서 5와 7, 13, 29는 소인수라고 합니다.
우리가 소인수 분해를 할 때 많이 사용하는 방법은 작은 수부터 나누면서 소인수 분해를 합니다.
1. 풀이
그래서 1을 제외한 소수 2부터 시작하여 입력받는 값의 number+1까지 반복문을 통해 소인수를 구별합니다.
입력받은 number가 0으로 나눠질 때까지 while문을 돌리면서
number을 i로 나눴을 때 몫을 계속적으로 나눌 것이기에 아래와 같이 코드를 구성하고, i값을 출력하여 가장 큰 소인수를 출력하는 문제입니다.
2. 코드
number = int(input())
for i in range(2, number+1):
while(number%i==0):
number /= i
print(i)
i+=1
반응형
'Language > Python' 카테고리의 다른 글
파이썬 버블정렬 Python Bubble Sort (0) | 2020.05.22 |
---|---|
파이썬(Python) 최대공약수와 최소공배수 (1) | 2019.12.05 |
파이썬(Python) 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수 (0) | 2019.12.04 |
파이썬(Python) 코드 실행시간 측정하는 코드 (0) | 2019.12.03 |
파이썬(Python) 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합 (0) | 2019.12.02 |
파이썬(Python) 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면? (0) | 2019.12.02 |
파이썬(Python) 로또 번호 프로그램 (0) | 2019.12.02 |
파이썬(Python) 별찍기 (0) | 2019.10.22 |
최근댓글