[英]Python 2.7 - prime number generator, can't figure out what is wrong with my program
[英]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 == 9
, m
将为3
,这就是您所追求的 - range(2, m)
将排除m
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.