Найдите все натуральные числа, принадлежащие отрезку [234567891; 345678912] и имеющие ровно три
нетривиальных делителя. Назовём нетривиальным делителем натурального числа его делитель,
не равный единице и самому числу. Например, у числа 6 есть два нетривиальных делителя: 2 и 3. Найдите все натуральные числа, принадлежащие отрезку [234567891; 345678912] и имеющие ровно три нетривиальных делителя. Для каждого найденного числа запишите в ответе его наибольший нетривиальный делитель. Ответы расположите в порядке возрастания.
Ответ:
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
for i in range(234567891, 345678912+1): k=0 d=2 maxd=0 if int(i**0.5) == i**0.5: while d < i**0.5: if i%d == 0: k += 2 if maxd == 0: maxd = i // d d += 1 if d*d == i: k += 1 if k == 3: print(i, k, maxd) |
Ответ: 2048383; 2248091
