Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def gcd(a, b):
- if b == 0:
- return a
- return gcd(b, a % b)
- def factorization(number):
- prime_numbers = []
- divisor = 2
- while divisor ** 2 <= number:
- if number % divisor == 0:
- count = 0
- while number % divisor == 0:
- number //= divisor
- count += 1
- prime_numbers.append([divisor, count])
- divisor += 1
- if number > 1:
- prime_numbers.append([number, 1])
- return prime_numbers
- number = int(input())
- factor = factorization(number)
- if factor[0][1] == 1:
- print('prime')
- elif len(factor) == 1:
- print('single')
- even_factor = [2] * factor[0][1]
- print(*even_factor)
- elif len(factor) == 2 and factor[1][1] == 1:
- print('single')
- even_factor = [2] * (factor[0][1] - 1) + [2 * factor[1][0]]
- print(*even_factor)
- elif len(factor) == 2:
- print('many')
- even_factor = [2] * (factor[0][1] - 1) + [2 * factor[1][0] ** factor[1][1]]
- print(*even_factor)ф
- even_factor = [2] * (factor[0][1] - 2) + [2 * factor[1][0]] + [2 * factor[1][0] ** (factor[1][1] - 1)]
- print(*even_factor)
- else:
- print('many')
- primes_other_product = 1
- for number, degree in factor[2:]:
- primes_other_product *= number ** degree
- even_factor = [2] * (factor[0][1] - 1) + [2 * factor[1][0] ** factor[1][1] * primes_other_product]
- print(*even_factor)
- even_factor = [2] * (factor[0][1] - 2) + [2 * factor[1][0] ** factor[1][1]] + [2 * primes_other_product]
- print(*even_factor)
Advertisement
Add Comment
Please, Sign In to add comment