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 相关文章推荐
Python修改Excel数据的实例代码
Nov 01 Python
python正则表达式判断字符串是否是全部小写示例
Dec 25 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
python3中int(整型)的使用教程
Mar 23 Python
python实现简单http服务器功能
Sep 17 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
python实现五子棋小游戏
Mar 25 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
使用遗传算法求二元函数的最小值
Feb 11 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
Python urllib2运行过程原理解析
Jun 04 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 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
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
python中plot实现即时数据动态显示方法
2018/06/22 Python
python中import与from方法总结(推荐)
2019/03/21 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
五一劳动节活动记录
2014/03/23 职场文书
2014年超市工作总结
2014/11/19 职场文书
交通事故起诉书
2015/05/19 职场文书
婚庆答谢词大全
2015/09/29 职场文书
《月光曲》教学反思
2016/02/16 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL