Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. from math import floor, sqrt
  2.  
  3. def decompose(number):
  4. """
  5. Раскладывает число на простые множетели.
  6.  
  7. Принимает агрумент number (int) -- целое число больше нуля.
  8. Возвращает (list of int) -- упорядоченный по возростанию список простых чисел.
  9. """
  10. result = []
  11. for i in range(2, floor(sqrt(number)) + 1):
  12. while number % i == 0:
  13. number //= i
  14. result += [i]
  15. if number > 1:
  16. result += [number]
  17. return result
  18.  
  19. def show(numbers, mult=' * ', power='^'):
  20. """
  21. Представляет результат функции decompose в удобочитаемом виде.
  22.  
  23. Принимаемые аргументы:
  24. numbers (list of int) -- упорядоченный по возростанию список простых чисел.
  25. mult (str) -- строковый вид операции умножения. Примеры: ' * ', '*'.
  26. power (str) -- строковый вид операции возведения в степень. Примеры: '^', '**'.
  27. Возвращает (str) -- строка вида '2^3 * 3^3 * 5'.
  28. """
  29. basis = numbers[0];
  30. extent = 0;
  31.  
  32. def show_multiplier():
  33. if extent == 1:
  34. print(basis, end='')
  35. else:
  36. print('%d%s%d' % (basis, power, extent), end='')
  37.  
  38. for number in numbers:
  39. if number == basis:
  40. extent += 1
  41. else:
  42. show_multiplier()
  43. print(mult, end='')
  44. basis = number
  45. extent = 1
  46. show_multiplier()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement