https://projecteuler.net/problem=3

来源:互联网 发布:学大数据好找工作吗 编辑:程序博客网 时间:2024/05/30 04:47

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 ?

当时考虑最大质因子,只要拿这个数自最小的质数开始除,除到最后,剩下的就是最大的质因子了,结果写出来的,好复杂额,不知道有没有简单的方法

#The prime factors of 13195 are 5, 7, 13 and 29.#What is the largest prime factor of the number 600851475143 ?import math#判断质数def isPrime(n):    temp = int(math.sqrt(n)) + 1    for i in range(2,temp):        if n % i == 0:            return False    return True#提取下一个质数def nextPrime(n):    result = n + 1    while True:        if isPrime(result):            return result        result += 1#不停的除质数,知道最后剩下的质数,就是最大的了 def biggestPrimeFactor(n):    start = 2    while start < n:        #只要能整除,就一直整除,知道不能整除位置       if n % start == 0:            n = n / start       else:
            start = nextPrime(start)    return nprint(biggestPrimeFactor(600851475143))


0 0