python - 在python中制作素数但在打印else语句时出错
问题描述
我正在制作程序来检查它是否是素数。但是 else 语句不起作用。
val = int(input("Enter Number here"))
if (val % 2 == 0):
print("Not Prime")
elif (val % 2 != 0):
for i in range(3, val, 2):
if (val % i == 0):
print("Not Prime")
else:
print("Prime")
另外,如果我尝试使用 elif(val != 0) 删除 else 语句,则没有输出
解决方案
还值得注意的是,您只需要检查直到 val 的平方根的数字,而不是 val 来查看它是否为素数。这将使您的代码更有效率。
在 val=1, 2 和其他此类情况下,一些答案也会失败。
这是一个正确的解决方案:
val = int(input("Enter Number here: "))
prime = True
if val==1:
prime=False
elif val % 2 == 0 and val!=2:
prime = False
else:
for i in range(3, int(val**(1/2))+1, 2):
if val % i == 0:
prime = False
break
if prime:
print("Prime")
else:
print("Not prime")
推荐阅读
- botframework - 如何使用 BotFramework Composer 运行主动对话
- react-hook-form - react-hook-form FormContext 默认值问题
- android - 如何从当前导航路线中获取剩余路线/坐标
- jupyter - 如何在 Jupyter Lab 暗模式下使工具栏选择颜色可见?
- tensorflow - 获取特定层的输出作为测试数据的结果,而不是 keras 中的最后一层(自动编码器潜在特征)
- image - 从子文件夹中提取 .jpeg 文件并使用 SSIS 将它们放在另一个文件夹中
- react-native - 我们什么时候应该在 React Native 中使用 `accessibilityRole`?
- angular - rxJs 三个 observables,前两个响应作为第三个的参数
- r - 如何使用 ggplot2 更改堆叠条形图的顺序和配色方案?
- c# - 在 ApplicationUser 中保持用户锁定状态的最佳方法是什么?