def prime_factors(n):
""" 주어진 수 n의 소인수를 찾아 반환합니다. """
i = 2 # 가장 작은 소수
factors = {} # 소인수와 그 지수를 저장할 딕셔너리
while i * i <= n:
while (n % i) == 0:
if i in factors:
factors[i] += 1
else:
factors[i] = 1
n //= i
i += 1
if n > 1:
factors[n] = 1
return factors
# 예제 데이터
number = 13195
factors = prime_factors(number)
print(f"The prime factors of {number} are: {factors}")
ZGVmIHByaW1lX2ZhY3RvcnMobik6CiAgICAiIiIg7KO87Ja07KeEIOyImCBu7J2YIOyGjOyduOyImOulvCDssL7slYQg67CY7ZmY7ZWp64uI64ukLiAiIiIKICAgIGkgPSAyICAjIOqwgOyepSDsnpHsnYAg7IaM7IiYCiAgICBmYWN0b3JzID0ge30gICMg7IaM7J247IiY7JmAIOq3uCDsp4DsiJjrpbwg7KCA7J6l7ZWgIOuUleyFlOuEiOumrAogICAgd2hpbGUgaSAqIGkgPD0gbjoKICAgICAgICB3aGlsZSAobiAlIGkpID09IDA6CiAgICAgICAgICAgIGlmIGkgaW4gZmFjdG9yczoKICAgICAgICAgICAgICAgIGZhY3RvcnNbaV0gKz0gMQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgZmFjdG9yc1tpXSA9IDEKICAgICAgICAgICAgbiAvLz0gaQogICAgICAgIGkgKz0gMQogICAgaWYgbiA+IDE6CiAgICAgICAgZmFjdG9yc1tuXSA9IDEKICAgIHJldHVybiBmYWN0b3JzCgojIOyYiOygnCDrjbDsnbTthLAKbnVtYmVyID0gMTMxOTUKZmFjdG9ycyA9IHByaW1lX2ZhY3RvcnMobnVtYmVyKQpwcmludChmIlRoZSBwcmltZSBmYWN0b3JzIG9mIHtudW1iZXJ9IGFyZToge2ZhY3RvcnN9Iik=