Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [312792; 312992], числа:

1) Имеющие ровно 4 различных делителя

2) Произведение цифр наибольшего делителя меньше 50.

Для найденных чисел выведите сумму делителей, два наименьших делителя в порядке возрастания.

Ответы

Ответ дал: Zergloing
1

Ответ:

313968 1 421

357504 1 7

315952 1 103

315052 1 157

375492 1 5

357616 1 7

Объяснение:

from math import sqrt

def mult(n):

   mult = 1

   while n:

       digit = n % 10

       mult = mult * digit

       n //= 10

   if mult < 50:

       return True

   else:

       return False

for x in range(312792, 312993):

   q = set()

   for t in range(1, round(sqrt(x)) + 1):

       if x  % t == 0:

           q.add(t)

           q.add(x // t)

   if len(q) == 4 and mult(sorted(q)[-1]):

       print(sum(sorted(q)), sorted(q)[0], sorted(q)[1])


Zergloing: Если мой ответ вас удовлетворил, то, пожалуйста, отметьте его как "Лучший ответ".
istinnuuk: Помогите пожалуйста задание в профиле прошу вас
Вас заинтересует