: 약수(인수)중에서 소수인 숫자
ex) 20의 약수(인수) = 1, 2(소수), 4, 5(소수), 20
그래서 20의 소인수는 2, 5
ex) 36의 약수 = 1, 2(소수), 3(소수), 4, 6, 9, 12, 18, 36
그래서 36의 소인수는 2, 3
: 1보다 큰 정수를 소인수의 곱으로 나타낸 것
ex) 20의 소인수분해 2 × 10(2 × 5) = 2×2×5
36의 소인수분해 2×18(2×9(3×3) = 2×2×3×3 = ×
input_num = int(input("1보다 큰 정수를 입력하세요: "))
n=2 #가장 작은 소수부터 시작
while n <= input_num: #n이 입력값보다 작거나 같을 때까지 반복
if input_num % n ==0: #n이 input_num의 약수라면(나누어 떨어지니까)
print('소인수:{}'.format(n)) # 소인수 출력
input_num /= n #input_num = input_num%n #input_num을 n으로 나눈 값을 다시 저장(점점 작아짐)
else:
n += 1 # n = n+1, n을 증가시켜서 다음 숫자로 검사
ex) 72에 어떤 정수 ( x )를 곱하면 완전제곱수(( y^2 ))가 될 때,
( x )의 값 중 가장 작은 정수를 구하시오.
input_num = int(input("1보다 큰 정수를 입력하세요: "))
n=2
searchNumber = []
while n <= input_num:
if input_num % n ==0:
print('소인수:{}'.format(n))
if searchNumber.count(n) == 0: #리스트 또는 문자열에서 n이 등장하는 횟수
searchNumber.append(n)
elif searchNumber.count(n) == 1:
searchNumber.remove(n)
input_num /= n #input_num = input_num%n
else:
n += 1 # n = n+1
print(searchNumber)