mfgnik

Untitled

Jun 11th, 2020
1,785
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.53 KB | None | 0 0
  1. def gcd(a, b):
  2.     if b == 0:
  3.         return a
  4.     return gcd(b, a % b)
  5.  
  6.  
  7. def factorization(number):
  8.     prime_numbers = []
  9.     divisor = 2
  10.     while divisor ** 2 <= number:
  11.         if number % divisor == 0:
  12.             count = 0
  13.             while number % divisor == 0:
  14.                 number //= divisor
  15.                 count += 1
  16.             prime_numbers.append([divisor, count])
  17.         divisor += 1
  18.     if number > 1:
  19.         prime_numbers.append([number, 1])
  20.     return prime_numbers
  21.  
  22.  
  23. number = int(input())
  24. factor = factorization(number)
  25. if factor[0][1] == 1:
  26.     print('prime')
  27. elif len(factor) == 1:
  28.     print('single')
  29.     even_factor = [2] * factor[0][1]
  30.     print(*even_factor)
  31. elif len(factor) == 2 and factor[1][1] == 1:
  32.     print('single')
  33.     even_factor = [2] * (factor[0][1] - 1) + [2 * factor[1][0]]
  34.     print(*even_factor)
  35. elif len(factor) == 2:
  36.     print('many')
  37.     even_factor = [2] * (factor[0][1] - 1) + [2 * factor[1][0] ** factor[1][1]]
  38.     print(*even_factor)ф
  39.     even_factor = [2] * (factor[0][1] - 2) + [2 * factor[1][0]] + [2 * factor[1][0] ** (factor[1][1] - 1)]
  40.     print(*even_factor)
  41. else:
  42.     print('many')
  43.     primes_other_product = 1
  44.     for number, degree in factor[2:]:
  45.         primes_other_product *= number ** degree
  46.     even_factor = [2] * (factor[0][1] - 1) + [2 * factor[1][0] ** factor[1][1] * primes_other_product]
  47.     print(*even_factor)
  48.     even_factor = [2] * (factor[0][1] - 2) + [2 * factor[1][0] ** factor[1][1]] + [2 * primes_other_product]
  49.     print(*even_factor)
Advertisement
Add Comment
Please, Sign In to add comment