Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [20211209; 20220126], числа, имеющие ровно 3 различных делителя, которые являются квадратами простых чисел. Программа должна вывести количество таких чисел. def f(x):
У тебя везде ошибка, эта программа никак не будет работать, потому что тут часть выражений, которых нет или они работают иначе в Python.
Рекомендую изучить документацию языка и не просить помощи нейронок в фундаментальных вопросах, они хорошо помогают только понять принцип работы.
В указанном диапазоне таких чисел нет!
from math import isqrt
def prime:
m = isqrt + 1
for l in range(3, m, 2):
if n % l == 0:
return False
return True
k = 0
for i in range(20211209, 20220127, 2):
m = isqrt(i)
if m**2 == i:
if prime(m):
k += 1
print('%4d) %d² = %d' % (k, m, i))
print(k, 'numbers'
Выводит количество чисел 0. Другое дело, например, диапазон [20000000;30000000] - тут таких чисел 116.