728x90
def prime_factors(n):
factors = []
divisor = 2
while n > 1:
while n % divisor == 0:
factors.append(divisor)
n //= divisor
divisor += 1
return factors if len(factors) > 0 else [n]
def factorization_string(factors):
factor_count = {}
for factor in factors:
if factor in factor_count:
factor_count[factor] += 1
else:
factor_count[factor] = 1
factors_str = ' * '.join([f"{k}" + (f'^{v}' if v > 1 else '') for k, v in factor_count.items()])
return factors_str
# 사용자로부터 수 입력 받기
user_input = int(input("정수를 입력하세요: "))
if user_input <= 1:
print("1 이상의 정수를 입력해주세요.")
else:
result = prime_factors(user_input)
factorization = factorization_string(result)
print(f"{user_input}의 소인수분해 결과: {factorization}")
728x90
'PY(Python Image Processing) > 중학수학기초' 카테고리의 다른 글
| 10정수와유리수의대소관계 (0) | 2024.08.15 |
|---|---|
| 09최대공약수와최소공배수 (0) | 2024.08.15 |
| 07소수와합성수 (0) | 2024.08.15 |
| 06_0과절대값 (0) | 2024.08.15 |
| 05무리수와실수 (0) | 2024.08.15 |