Я пытался сгенерировать все простые числа в диапазоне от x до y. Я попробовал простой пример первый: range(10,11)
, что означает, чтобы проверить, если 10 есть простое число:
Вот мой код:Поиск простых чисел с использованием списка сравнения
prime_list = [x for x in range(10, 11) for y in range(2,x) if x % x == 0 and x % 1 == 0 and x % y != 0]
Я знаю, что вещь отсутствует возможность сказать выражение, x%y != 0
должно быть проверено для всех y в range (2,x)
и верните true тогда и только тогда, когда все они выполнили это условие.
Как мы это сделаем?
Может быть лучше, если бы он побежал только Шифрование до SQRT (х). Хорошее использование 'all', теперь я знаю, сколько мест я мог бы использовать. –
Вы можете использовать' range (2, int (x ** 0.5) + 1) '. ('int' используется, чтобы избежать' TypeError') – falsetru
Хорошее решение! Единственное, что не следует проверять на x. Я получил это. К сожалению, он не получает 2 в виде простого числа: [x for x in range (2,2000), если все ([x% y для y в диапазоне (2, math.ceil (math.sqrt (x)) + 1)])] – peterb