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 相关文章推荐
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
使用python实现ANN
Dec 20 Python
python散点图实例之随机漫步
Aug 27 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
python使用requests模块实现爬取电影天堂最新电影信息
Apr 03 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
python框架flask表单实现详解
Nov 04 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
用python画城市轮播地图
May 28 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
python实现Decorator模式实例代码
2018/02/09 Python
python实现俄罗斯方块游戏
2020/03/25 Python
Selenium定位元素操作示例
2018/08/10 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
个人培训自我鉴定
2014/03/28 职场文书
财产公证书
2014/04/10 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
python数据处理之Pandas类型转换
2022/04/28 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python
MySQL常用慢查询分析工具详解
2022/08/14 MySQL