Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

ДарьяВ Донская Ученик (93), на голосовании 1 день назад
Задание : Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [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)   
Объясните ,пожалуйста, что здесь не так!? Он не работает
Голосование за лучший ответ
Padshiy Angel Мастер (2082) 1 месяц назад
Ой у меня щас инфаркт будет это чё на арабском щас написала?
PS Мудрец (19404) 1 месяц назад
f(x) – фейл. Он чекает на простоту, а тебе нужны квадраты простых

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

добавляешь в сет все делители, а не только квадраты простых

переписывай с нуля, а не пытайся чинить этот шлак

Если не шаришь, гугли "факторизация числа"
Похожие вопросы