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发送伪造的arp请求
Jan 09 Python
Python中的多重装饰器
Apr 11 Python
在Python的web框架中配置app的教程
Apr 30 Python
python使用tkinter实现简单计算器
Jan 30 Python
python增加矩阵维度的实例讲解
Apr 04 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
浅析Python迭代器的高级用法
Jul 16 Python
Python eval函数原理及用法解析
Nov 14 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中抽象类和接口的概念以及区别
2013/06/27 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
JS动画效果代码3
2008/04/03 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
对python:print打印时加u的含义详解
2018/12/15 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
自我鉴定怎么写
2013/12/05 职场文书
诚信承诺书范文
2014/03/27 职场文书
端午节活动总结
2014/08/26 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
青岛市的收音机研制与生产
2022/04/07 无线电
windows系统搭建WEB服务器详细教程
2022/08/05 Servers