python - 当被问到“这是一个素数吗?”时,需要创建一个返回布尔值的函数。
问题描述
我正在尝试创建一个函数来测试一个数字是否是素数,然后返回 True 或 False。我是 Python 的初学者,所以请让你的代码尽可能简单。这是我到目前为止所尝试的(仅返回 True):
def isPrime(x):
x = int(x)
for i in range(2, x):
if(x % i == 0):
x == False
else:
x == True
return x
print(isPrime(input("Enter a prime number.")))
解决方案
你几乎成功了,只需要像这样改变它:
def isPrime(x):
x = int(x)
for i in range(2, x):
if x % i == 0:
return False
return x >= 2
print(isPrime(input("Enter a prime number.")))
编辑:正如@MarkRansom 所指出的,当i
变量达到 的平方根时x
,可以安全地假设它没有更多可能的除数:
from math import sqrt
def isPrime(x):
x = int(x)
for i in range(2, int(sqrt(x)) + 1):
...
推荐阅读
- javascript - React-dnd:我可以让非反应元素接受下降吗
- docker - 如何访问远程 docker 卷以简单地编辑和加载文件?
- java - Avro Schema 反序列化 Index out of bound exception 错误 - 架构解析
- python - 根据包含的字母过滤数据框
- javascript - 带有 Ajax + 数据表的 CRUD 表不起作用
- flutter - 为什么我的 Flutter 应用程序的发布版本与我开发的不同?
- php - 在请求中将字符串转换为 DateTime
- python - 使用 PY3 和 BS 获取值
- javascript - forEach 方法似乎跳过了一个条目
- python - 如何修改 sys.stdin.readline() 以同时读取所有输入数据?