Problem 3:Largest prime factor

来源:互联网 发布:svakom 知乎 编辑:程序博客网 时间:2024/06/06 20:40

原题地址:http://projecteuler.net/problem=3

Largest prime factor

Problem 3

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?


大意是:

13195的质数因子有5,7,13和29.

600851475143的最大质数因子是多少?


解法1:

1.进行因数分解

2.筛选出质因数

3.取最大质因数

python代码如下所示:

import mathmaxnum = 600851475143Lfactorlist = []prifactorlist = []def isPrime(num):    num = int(num)     temp = math.floor(math.sqrt(num))+1        while temp > 1:         if num%temp == 0:             print temp             return False         temp -= 1    else:         return Truedef getFactors(num):    temp = 2    while temp < num:        if num%temp == 0:            factorlist.append(temp)            num /= temp            temp = 2        temp += 1    factorlist.append(num)    def maxPrime(num):    for x in factorlist:        prifactorlist.append(x)    return max(prifactorlist)        if __name__ == '__main__':   getFactors(maxnum)   #print max(factorlist)   print 'max prime factor of %d is:%d' % (maxnum,maxPrime(maxnum))       




注:题目的中文翻译源自http://pe.spiritzhang.com


原创粉丝点击