Project Euler 3

来源:互联网 发布:美容护肤基础知识知乎 编辑:程序博客网 时间:2024/06/03 07:34
'''Created on 2014年8月23日Largest prime factorThe prime factors of 13195 are 5, 7, 13 and 29.What is the largest prime factor of the number 600851475143 ?@author: wxp2971'''from numpy import *# 直接求解,寻找最大的那个N = 600851475143factor = 2lastFactor = 1while N > 1:    if N % factor == 0:        lastFactor = factor        while N % factor == 0:            N = N / factor    factor += 1print(lastFactor)# 对特殊的质数进行筛选N = 600851475143if N % 2 == 0 :    N = N / 2    lastFactor = 2    while N % 2 == 0:        N = N / 2else:    lastFactor = 1factor = 3while N > 1:    if N % factor == 0:        N = N / factor        lastFactor = factor        while N % factor == 0:            N = N  / factor    factor += 2print(lastFactor)# 质因子的最大不会超过sqrt(N)N = 600851475143if N % 2 == 0 :    N = N / 2    lastFactor = 2    while N % 2 == 0:        N = N / 2else:    lastFactor = 1factor = 3maxFactor = sqrt(N)while N > 1 and factor <= maxFactor:    if N % factor == 0:        N = N / factor        lastFactor = factor        while N % factor == 0:            N = N  / factor        maxFactor = sqrt(N)    factor += 2if N == 1:    print(lastFactor)else:    print(int(N))

0 0
原创粉丝点击