Python. напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку... - Компьютерные вопросы

Вопрос Python. напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку...

Регистрация
28 Мар 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [20211209; 20220126], числа, имеющие ровно 3 различных делителя, которые являются квадратами простых чисел. Программа должна вывести количество таких чисел.                                                                                                                                                 def f(x):

    for i in range(2, int(x**0.5)+1):

        if x % i ==0:

            return False

    return True



for x in range(20211209, 20220126):

    if x 0.5 == int(x 0.5):

        c = set()

        for i in range(2, int(x**0.5)+1):

                if x % i == 0:

                    c.add(i)

                    c.add(x//i)

        if len(c) == 3:

            print(x)    Где ошибка?
 
Регистрация
12 Сен 2013
Сообщения
67
Репутация
0
Спасибо
0
Монет
0
Ну вот ты описал f(x), а где ты ее вызвал о_О?
 
Регистрация
6 Сен 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
У тебя везде ошибка, эта программа никак не будет работать, потому что тут часть выражений, которых нет или они работают иначе в Python.
Рекомендую изучить документацию языка и не просить помощи нейронок в фундаментальных вопросах, они хорошо помогают только понять принцип работы.
 
Регистрация
10 Апр 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
В указанном диапазоне таких чисел нет!
from math import isqrt
def prime(n):
m = isqrt(n) + 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.
 
Сверху Снизу