Skip to content
Advertisement

Finding prime numbers using list comprehention

I was trying to generate all prime numbers in range x to y. I tried simple example first: range(10,11) which means to check if 10 is a prime number:
Here is my code:

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]

I know that the thing is missing the option to tell the expression that x%y != 0 should be checked for all y in range (2,x) and return true if and only if all have met this condition.

How do we do that?

Advertisement

Answer

Use all to check all elements (from 2 upto x-1) met conditions:

>>> [x for x in range(2, 20)
     if all(x %% y != 0 for y in range(2, x))]
[2, 3, 5, 7, 11, 13, 17, 19]

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement