Someone Something wrote:
But, I'm returning true or false right?

No. If you don't explicitly return a value then None will be returned.

On Sat, Sep 12, 2009 at 11:32 AM, MRAB <pyt...@mrabarnett.plus.com <mailto:pyt...@mrabarnett.plus.com>> wrote:

    Someone Something wrote:

        Project euler (in case you don't know: projecteuler.net
        <http://projecteuler.net> <http://projecteuler.net>)


        I'm trying to do the third one and here's my current code:

         1 def checkPrime (x):
         2     factors=2;
         3     while factors<=x:
         4         if x==factors:
         5             return True;
         6         elif x%factors==0:
         7             return False;
         8         elif x%factors!=0:
         9             factors=factors+1;


    You're not returning 'factors', so the function will return None.


         10
         11 factorl=[];
         12 factors=600851475142;
         13
         14 while factors != 1:
         15     if 600851475143%factors==0:
         16         if checkPrime(factors)==True:
         17             print factors;
         18         else:
         19             factors=factors-1;
         20
         21     else:
         22         factors=factors-1;
         23

        And it just gets frozen when I run it. I put a

        print "Loop completed"

        in one of the loops and it showed up just fine. So, there are
        two possibilities:
        1. Its looping in the trillions and taking a while
        2. I have a forever loop somewhere

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to