def buildPrimeList(): count=1 num=3 while True: while not isPrime(num): num+=2 count+=1 primeList.append(num) num+=2 if count==2000: break
def test(): sum=2 print '2,' num=3 while num<2000000: if not isPrime(num): num+=2 continue #print num sum+=num num+=2 print 'sum=',sum
def getPrimeFactors(num): ''' return the prime factors for a number. e.g: input 10 output: dict = { 2: 1, 5: 1} ''' factors = {} prime = 2 while num>1: while num % prime ==0: if prime in factors: factors[prime] = factors[prime]+1 else: factors[prime] = 1 num = num / prime prime += 1 while isPrime(prime) == False: prime +=1 if prime > num: break; #print factors return factors
#!/usr/bin/python # Filename: Euler7.py #By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. #What is the 10001st prime number? from myUtil import isPrime count=1 num=3 print count,'2' while True: while not isPrime(num): num+=2 count+=1 print count,num num+=2 if count==10001: break
#print 'b=',b while b>1: if a%b ==0: return False b-=2 return True ''' num = 600851475143 max_p_factor = 3 a=max_p_factor+2 # to find the next prime factor while True: #to find the next bigger prime number while not isPrime(a): if a>=num: break # found result: max_p_factor else: a+=2 if a>=num: break # found result: max_p_factor elif num%a==0: max_p_factor=a num = num/a # a bug: need to loop here! if a>=num: break print 'found one prime factor=',a else: print 'prime, but not factor', a a+=2