python - 关于 Python 中的 Project Euler 问题 7 的问题
问题描述
我一直在研究 Euler 项目的问题 7。我已经把我的Python代码弄好了,但是没有输出,不知道有没有语法和逻辑上的问题。你能帮我检查一下它有什么问题吗?这是原始问题:
通过列出前六个素数:2、3、5、7、11 和 13,我们可以看到第 6 个素数是 13。第 10 001 个素数是什么?
def isprime(n):
for i in range(2,n):
if n % i == 0:
return False
return True
x = 3
counter = 2
while counter <= 10001:
if isprime(x):
counter += 1
x += 2
else:
x += 2
print (x)
解决方案
在以下修复后,您的逻辑可以正常工作:
- 正确的缩进。
- 从最终结果中减去 2。
请注意,您的实施效率低下。但是,它确实有效。
def isprime(n):
for i in range(2, n):
if n % i == 0:
return False
return True
x = 3
counter = 2
while counter <= 10001:
if isprime(x):
counter += 1
x += 2
else:
x += 2
print(x-2) # 104743
推荐阅读
- php - Codeigniter 3 博客错误:分页仅显示第一页
- javascript - 多种选择形式由一个主选择控制
- r - R 错误“Selenium 消息:无法创建新服务:ChromeDriverService”
- c++ - C++ No Matching function call to Errors
- c# - docker/linux aspnet core 2.03 截断发布数据。这怎么可能?
- javascript - 函数内部的重叠循环
- javascript - 为什么 window.location.href.split("?") 数组本身正在改变它的值
- php - 从字符串中提取票号
- java - 如何遍历具有不同类型列表的单个活动并单击返回按钮应返回上一个列表
- php - 无法使用 jQuery 和 PHP 将动态数据正确加载到数据表中