营销网站设计公司排名,网站建设中单页源码,旅游网站的建设的文献综述,北京网站设计制作关键词请定义一个函数#xff0c;实现判断一个数是否是超级素数,并输出判断的结果。
一、编程题目 我们都知道#xff0c;素数是除了1之外只能被自身整数的数#xff0c;1除外。如果一个素数#xff0c;去除一位、两位或多位后依然是素数#xff0c;则我们称该素数为超级素数。…请定义一个函数实现判断一个数是否是超级素数,并输出判断的结果。
一、编程题目 我们都知道素数是除了1之外只能被自身整数的数1除外。如果一个素数去除一位、两位或多位后依然是素数则我们称该素数为超级素数。 请定义一个函数实现判断一个数是否是超级素数,并输出判断的结果。 二、输入输出样例 输入样例12 输出样例12 不是一个超级素数 输入样例373 输出样例373 是一个超级素数 输入样例10.2 输出样例输入格式错误请输入一个整数 三、代码实现 1、首先定义一个函数用于判断一个数是否是素数素数是大于1的数且只能被自身和1整除。
import math
def isPrime(n): # 判断一个数是否是素数if n 2:return Falsefor i in range(2, int(math.sqrt(n)) 1):if n % i 0:return Falsereturn True 在上面这个代码中我们定义了一个叫isPrime的函数如果数字小于2直接返回false,否则判断2到根号n 再加1之间的数能不能被n整除这里要注意的就是不用从2到n进行判断因为如果根号n再加1都无法整除那么后面的数字更是无法整除从而可以减小循环的判断加快执行的速度。 2、定义一个判断是否是超级素数的函数用于判断一个数每去掉一位是否还是素数。
def isSuperPrime(n): # 判断一个数是否是超级素数n_str str(n)for i in range(len(n_str)):cur_n n_str[:len(n_str)-i] #从个位开始去掉一个数之后判断是否依然是素数if not isPrime(int(cur_n)):return Falsereturn True 上面的代码中我们定义了一个isSuperPrime函数因为要判断这个数每去掉一位是否是素数因此我们把这个数转为字符串类型方便处理因为字符串类型的数据可以通过切片的方式对每一位进行截取。 我们循环这个数字的长度从个位数开始截取每次去掉一位看剩余的数字是否还是素数判断方法就是直接调用之前写好的判断素数的方法如果不是素数则循环结束这个数就不可能是超级素数否则一直循环判断完毕如果最后都满足素数则该数字是一个超级素数最后返回True 3、在主函数中实现输入和判断并输出判断的结果
if __name__ __main__:n input(请输入一个整数:)try:n int(n)if isSuperPrime(n):print({} 是一个超级素数!.format(n))else:print({} 不是一个超级素数!.format(n))except:print(输入格式有误请输入一个整数) 我们通过input获取输入的数字然后转为int如果输入的数字格式不对比如输入的是小数那么转int就会报错报错了就提示输入格式有误否则调用判断超级素数的方法判断该数字是否是超级素数是的话输出是超级素数否则输出不是超级素数。 四、测试 1、输入数字12 2、输入数字373 3、输入0.23