繁体   English   中英

我不知道这个素数检查器有什么问题

[英]I can't figure out what is wrong with this prime checker

我正在尝试解决 Project Euler 问题 3,我是编码新手,所以我相信这可以更优化。 本质上,我试图遍历 1 和数字的 sqrt 之间的每个数字,以确定它是否是质数,我的调试一直说它只检查它是否可以被 1 整除,我做错了什么?

# Project Euler Problem #3
# Largest prime factor
# What is the largest prime factor of the number 600851475143?
import math
primelist = []
n = 1

while n < 775147:
    n += 1
    m = int(math.sqrt(n))
    if 600851475143 % n == 0:
        if n % 2 != 0:

             for i in range(1,m):
                print (i)
                if n % i == 0:
                    break
                else:
                    primelist.append(n)

for i in range(1, m):需要for i in range(2, m + 1): ,因为您不想测试1并且应该包括m + 1

例如,当n == 9m将为3 ,这就是您所追求的 - range(2, m)将排除m

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM