检查数字是否为质数的函数不给出输出
function to check if a number is prime not giving output
我正在尝试编写一个函数来检查数字是否为质数,并编写了以下函数。但是,尽管该函数在定义它时不会抛出错误,但当 运行 带有输入参数(比如 23)时,它不会执行。已经在内核保持 运行ning 的 Jupyter 笔记本上尝试 运行ning ,以及我收到错误“错误:命令失败:超时 7 python3” 的在线编辑器。无法看到可能的问题,例如除法为 0 etc.Could 请您帮忙?
def prime_check(num):
prime =True
while prime==True:
for i in range(2,num):
if num%i ==0:
prime=False
break
return prime
想一想当您拥有质数时您的代码中会发生什么。它永远不会退出 while 循环。
这可行
def prime_check(num):
for i in range(2,num):
if num%i == 0:
return False
return True
您可以做很多事情来优化您的代码。改进算法是很好的训练。数学和编码的完美结合。
我们知道3227873423是素数。尝试 运行 你的代码是这样的。
import time
def timer():
start_time = time.time()
prime_check(3227873423)
end_time = time.time()
return end_time-start_time
timer()
此 returns 您的代码执行测试所需的时间(以秒为单位)。您可以改进您的代码,看看您能以多快的速度获得它。不要忘记测试它 returns 优化后的结果是否正确。
你可以从这里得到用于测试的大质数:https://bigprimes.org/
while prime==True: # if a prime is True this loop will continue forever
for i in range(2,num):
if num%i ==0:
prime=False
break
我建议将 while prime == True:
部分留在外面
我正在尝试编写一个函数来检查数字是否为质数,并编写了以下函数。但是,尽管该函数在定义它时不会抛出错误,但当 运行 带有输入参数(比如 23)时,它不会执行。已经在内核保持 运行ning 的 Jupyter 笔记本上尝试 运行ning ,以及我收到错误“错误:命令失败:超时 7 python3” 的在线编辑器。无法看到可能的问题,例如除法为 0 etc.Could 请您帮忙?
def prime_check(num):
prime =True
while prime==True:
for i in range(2,num):
if num%i ==0:
prime=False
break
return prime
想一想当您拥有质数时您的代码中会发生什么。它永远不会退出 while 循环。
这可行
def prime_check(num):
for i in range(2,num):
if num%i == 0:
return False
return True
您可以做很多事情来优化您的代码。改进算法是很好的训练。数学和编码的完美结合。
我们知道3227873423是素数。尝试 运行 你的代码是这样的。
import time
def timer():
start_time = time.time()
prime_check(3227873423)
end_time = time.time()
return end_time-start_time
timer()
此 returns 您的代码执行测试所需的时间(以秒为单位)。您可以改进您的代码,看看您能以多快的速度获得它。不要忘记测试它 returns 优化后的结果是否正确。
你可以从这里得到用于测试的大质数:https://bigprimes.org/
while prime==True: # if a prime is True this loop will continue forever
for i in range(2,num):
if num%i ==0:
prime=False
break
我建议将 while prime == True:
部分留在外面