python判断数字是否是超级素数幂


Posted in Python onSeptember 27, 2018

如果一个数字能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数字就是超级素数幂。
param number: 测试该数字是否是超级素数幂
return: 如果不是就返回 False,如果是就返回 p 和 q 值
例如,输入125,返回(5,3)

代码:

import math


def get_prime(number):
  '''
  寻找小于number的所有的质数,时间复杂度o(n^2)
  '''
  if number <= 1:
    print 'Wrong given number.'
    return
  prime = []
  for i in xrange(2, number+1):
    j = 2
    while j < i:
      if i % j == 0:
        break
      j += 1
    if j == i:
      prime.append(i)
  return prime

def super_prime_power(number):
  scope = int(math.ceil(math.sqrt(number))) # 开根号除掉一部分不需要的数
  prime_number = get_prime(scope)
  be_tested = []
  for i in prime_number: # 先将无法被整数的排除掉
    if number % i == 0:
      be_tested.append(i)
  for p in be_tested:
    q = 2
    while p ** q <= number:
      if p ** q == number:
        return (p, q)
      q += 1
  return False

print super_prime_power(999)

分析:

总的时间复杂度为o(sqrt(n)log n),再加上寻找质数花费的时间,总的时间复杂度为o(n^2 sqrt(n)log n)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
Apr 12 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
python tkinter界面居中显示的方法
Oct 11 Python
Python os.access()用法实例
Feb 18 Python
python 字典的打印实现
Sep 26 Python
python实现大学人员管理系统
Oct 25 Python
python文字转语音实现过程解析
Nov 12 Python
如何通过Django使用本地css/js文件
Jan 20 Python
Python如何使用ElementTree解析xml
Oct 12 Python
python 将Excel转Word的示例
Mar 02 Python
Flask实现跨域请求的处理方法
Sep 27 #Python
python环形单链表的约瑟夫问题详解
Sep 27 #Python
transform python环境快速配置方法
Sep 27 #Python
python如何求解两数的最大公约数
Sep 27 #Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 #Python
python斐波那契数列的计算方法
Sep 27 #Python
python实现汉诺塔算法
Mar 01 #Python
You might like
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
JavaScript Eval 函数使用
2010/03/23 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
python3实现mysql导出excel的方法
2019/07/31 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
捐款感谢信
2015/01/20 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL