Project euler no. 3

MRAB python at mrabarnett.plus.com
Sat Sep 12 12:14:45 EDT 2009


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 <python at mrabarnett.plus.com 
> <mailto:python at 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
> 



More information about the Python-list mailing list