目录
一、题目描述
1、输入格式
2、输出格式
二、代码解析
1、全部代码
2、代码详解
三、源代码奉上
一、题目描述
编写一个能进行素数判定的小程序。
判定用户输入的一个正整数 n
是否为素数。
将素数的判定代码定义为一个函数,接受用户输入的正整数 n
,返回 n
是否是素数,n
为素数时返回 True
,不是素数时返回 False
。
并调用该函数判定用户输入的一个正整数 n
是否为素数。
1、输入格式
输入一个正整数
2、输出格式
若该数为素数,输出“X是素数”
若该数为非素数,输出“X不是素数”
其中X为输入的整数
二、代码解析
1、全部代码
2、代码详解
当n小于2时不是素数,返回false
if n < 2:
return False
然后运用循环,把n除以2~n^0.5+1内的数,如果存在相除等于0,则说明该数有因子,不是素数,循环结束没有返回,则说明没有因子,是素数,返回true
if n < 2:
return False
for i in range(2,int(n**0.5)+1):
if n % i == 0:
return False
return True
说明:为什么循环到int(n**0.5)+1
假设a = n^0.5
b < a
c = n / b > n / a
a = n / a
所以两边必然有相等个因子
所以我们只要遍历前半部分即可判断是否具有因子,而n^0.5可能为小数,所以我们应该取整,用int取整可能会小于中间值,所以需要加一,当然不加以的话可以使用math.ceil取整,这里就不过多展开啦~
三、源代码奉上
def is_prime(n):
"""判断素数的函数,接收一个正整数为参数,返回值是布尔类型。
参数是素数时返回True,否则返回False"""
#==================Begin=================================
if n < 2:
return False
for i in range(2,int(n**0.5)+1):
if n % i == 0:
return False
return True
#===================End================================
positive_int = int(input()) # 输入一个正整数
if is_prime(positive_int):
print(f'{positive_int}是素数')
else:
print(f'{positive_int}不是素数')
还有什么不懂的可以来找博主哦~~
喜欢的话记得三连哦~~~文章来源:https://www.toymoban.com/news/detail-771230.html
感谢支持!!!文章来源地址https://www.toymoban.com/news/detail-771230.html
到了这里,关于Python作业题——“素数问题”的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!