Прикреплённый файл «Mults.py»

Загрузка

   1 #!/usr/bin/env python3
   2 '''
   3 Ввести натуральное число N, вывести все различные разложения N на сомножители
   4 без учёта порядка
   5 '''
   6 
   7 def demultR(N, m=2):
   8     k = m
   9     while N//k >= k:
  10         if N%k == 0:
  11             for res in demultR(N//k,k):
  12                 yield (k,)+res
  13         k += 1
  14     yield (N,)
  15 
  16 def demultP(N):
  17     stack = [[N,2,2]]                         # def demultR(N, m=2):
  18     while stack:                              #
  19         NS = stack[-1]                        # N, m, k
  20                                               # k = m
  21         if NS[0]//NS[2] >= NS[2]:             # while N//k >= k:
  22             if NS[0]%NS[2] == 0:              #     if N%k == 0:
  23                 n,m,k=NS[0]//NS[2],NS[2],NS[2]#
  24                 stack.append([n,m,k])         #         for res in demult(N//k,k):
  25                 NS[2] += 1                    #
  26                 continue                      #             yield (k,)+res
  27             NS[2] += 1                        #     k += 1
  28         else:                                 #
  29             ret = [s[1] for s in stack[1:]]   #
  30             yield ret+[NS[0]]                 # yield (N,)
  31             stack.pop()                       #
  32 
  33 N = int(input())
  34 for R,P in zip(demultR(N),demultP(N)):
  35     print(*R, "/", *P)

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.
 Все файлы | Выбранные файлы: удалить переместить на страницу скопировать на страницу

Вам нельзя прикреплять файлы к этой странице.