My backwards logic

Seymore4Head Seymore4Head at Hotmail.invalid
Fri Sep 5 23:49:36 CEST 2014


On Fri, 05 Sep 2014 12:48:56 -0400, Seymore4Head
<Seymore4Head at Hotmail.invalid> wrote:

>I'm still doing practice problems.  I haven't heard from the library
>on any of the books I have requested.
>
>http://www.practicepython.org/exercise/2014/04/16/11-check-primality-functions.html
>
>This is not a hard problem, but it got me to thinking a little.  A
>prime number will divide by one and itself.  When setting up this
>loop, if I start at 2 instead of 1, that automatically excludes one of
>the factors.  Then, by default, Python goes "to" the chosen count and
>not "through" the count, so just the syntax causes Python to rule out
>the other factor (the number itself).
>
>So this works:
>while True:
>    a=random.randrange(1,8)
>    print (a)
>    for x in range(2,a):
>        if a%x==0:
>            print ("Number is not prime")
>            break
>    wait = input (" "*40  + "Wait")
>
>But, what this instructions want printed is "This is a prime number"
>So how to I use this code logic NOT print (not prime) and have the
>logic print "This number is prime"

I am sure this has already been done, but after it was pointed out
that you don't need to test for any number that multiplies by 2 it
made me think again.

If you start with the list [3,5,7] and step through the list of all
remaining odd numbers (step 2), and start appending numbers that won't
divide by numbers already appended in the list, that would seem like a
pretty efficient way to find all prime numbers.




More information about the Python-list mailing list