试图解决问题:“找到最大的素数600851475143”
我正在尝试解决欧拉计划的第三个问题。由于我才刚刚开始,所以我的代码仍然很糟糕,并且我对语言不了解很多。非常感谢您的评论。谢谢!
num = 600851475143
ans3 = []
primes = [x for x in range(num) if x % 2 != 0 and
x % 3 != 0 and
x % 4 != 0 and
x % 5 != 0 and
x % 6 != 0 and
x % 7 != 0 and
x % 8 != 0 and
x % 9 != 0 and
x % 11 != 0 and
x % 13 != 0 and
x % 17 != 0 and
x % 19 != 0 and
x % 23 != 0 and
x % 29 != 0 and
x % 31 != 0]
primes.insert(1, 2)
primes.insert(2, 3)
primes.insert(3, 5)
primes.insert(4, 7)
primes.insert(5, 11)
primes.insert(6, 13)
primes.insert(7, 17)
primes.insert(8, 19)
primes.insert(9, 23)
primes.insert(10, 29)
primes.insert(11, 31)
primes.pop(0)
for x in primes:
if num % x == 0:
ans3.append(x)
print(ans3)
我不知道答案,但是它在较小的数字下效果很好(例如示例13195,输出29)。