python script to give a list of prime no.

Dan Sommers 2QdxY4RzWzUUiLuE at potatochowder.com
Sun Apr 5 14:14:39 EDT 2020


On Sun, 05 Apr 2020 19:46:00 +0200
Pieter van Oostrum <pieter-l at vanoostrum.org> wrote:

> Sathvik Babu Veligatla <sathvikveligatla at gmail.com> writes:
> 
> > hi,
> > I am new to python, and i am trying to output the prime numbers
> > beginning from 3 and i cannot get the required output.  It stops
> > after giving the output "7" and that's it.
> > CODE:
> > a = 3
> > l = []
> > while True:
> >     for i in range(2,a):
> >         if a%i == 0:
> >             l.append(1)
> >         else:
> >             l.append(0)
> >
> >     if l.count(1) == 0:
> >         print(a)
> >         a = a + 2
> >     elif l.count(1) >> 0:
> >         a = a + 2

[intervening optimizations omitted to conserve electrons]

> And you effectively use the counter as a boolean, so replace is by a boolean.
> 
> a = 3
> while True:
>     is_prime = True
>     for i in range(2,a):
>         if a%i == 0:
>             is_prime = False
>             # once we found a divisor, it is no use to continue
>             break
>     if is_prime:
>         print(a)
>     a = a + 2
> 
> Further optimizations are possible, for example use range(2,a/2) or
> even range (2, sqrt(a)).

Now if only there were a way to get rid of that extraneous flag and
build some sort of "if the loop ran to completion" construct....

    a = 3
    while True:
        for i in range(2,a):
            if a%i == 0:
                # once we found a divisor, it is no use to continue
                break
        else:                   # magic here!
            print(a)
        a = a + 2

The Time Machine Strikes Again,
Dan


More information about the Python-list mailing list