当前位置: 首页 > news >正文

python编程:判断一个数是否是超级素数

请定义一个函数,实现判断一个数是否是超级素数,并输出判断的结果。

一、编程题目

        我们都知道,素数是除了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

 

http://www.lryc.cn/news/45174.html

相关文章:

  • 雷迪RD8200管线探测仪参数/管线仪使用方法/管线仪说明书
  • 会话共享保存到redis
  • python 曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波)
  • 小驰私房菜_10_camx Otp Dump
  • priority_queue(堆)干货归纳+用法示例
  • miniprogram-to-uniapp使用指南(各种小程序项目转换为uni-app项目)
  • BZOJ2720: [Violet 5]列队春游 【概率与期望】
  • 脉诊之脉象——平脉,常见病脉,七绝脉
  • 第05章_存储引擎
  • 【新2023Q2押题JAVA】华为OD机试 - 挑选字符串
  • 职场「OKR」,魔幻又内卷
  • mysql8计算商家距离,按照由近及远排序
  • c语言函数使用记录
  • VBA智慧办公4——符号运算及语法结构
  • ChatGPT角色扮演提示语
  • 【Java面试题】设计模式之七种结构性模式——代理模式、适配器模式、桥接模式、装饰模式、外观模式、享元模式、组合模式
  • 【从零开始学习 UVM】6.3、UVM 激励产生 —— start() 方法执行sequence详解
  • 「Python 机器学习」Matplotlib 数据探索
  • 3.24-3.26学习总结
  • OpenAI Translator 基于 ChatGPT API 的划词翻译工具
  • git常用指令---复习向
  • 安卓开发学习记录(持续学习)
  • 【redis】AOF日志:宕机了,Redis如何避免数据丢失
  • 第三章Vue中的Ajax
  • 在 Python3 中使用 JSON
  • 图神经网络GNN介绍
  • 【面试】TCP、UDP、Socket、HTTP网络编程面试题
  • Python语言的文件读写
  • 面向对象 ( 上 )
  • Node.js学习笔记——会话控制