, на ПИТОНЕ Разложение на чётнопростые
В этой задаче рассматриваются только чётные целые числа.

Чётное натуральное число n будем называть чётнопростым числом, если его нельзя представить в виде произведения двух чётных чисел. Например, числа 2 и 6 — чётнопростые.

Очевидно, что каждое число либо является чётнопростым, либо разлагается в произведение чётнопростых. Но такое разложение на чётнопростые не всегда единственно.

Входные данные

Дано чётное натуральное n≤109.

Выходные данные

Если число n чётнопростое, выведите слово prime. Если это число единственным образом разлагается в произведение двух и более чётнопростых, то выведите слово single, а в следующей строке выведите разложение этого числа на чётнопростые множители. Если число допускает несколько различных разложений на чётнопростые, то выведите слово many, а в следующих двух строках выведите два каких-нибудь различных разложения числа на чётнопростые множители.

j5022778 j5022778    2   13.07.2021 23:14    80

Ответы
DzhamalHAS DzhamalHAS  12.08.2021 23:51

def solve(n):

 d = 0

 while not (n&1):

   d += 1

   n //= 2

 a = [2]*d

 a[-1] *= n

 if d == 1:

   print("prime")

   return

 for x in range(3, int(n**.5)+1, 2):

   if not (n%x):

     b = a[:]

     b[-1] //= x

     b[-2] *= x

     print("many")

     print(" ".join(map(str, a)))

     print(" ".join(map(str, b)))

     return

 print("single")

 print(" ".join(map(str, a)))

from sys import stdin

for line in stdin:

 print("=== " + line.strip() + " ===")

 solve(int(line))

Дайте плз 5 звёзд, мне очень не хватает "Лучших ответов"

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика