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类的基础入门知识
Nov 24 Python
使用python实现strcmp函数功能示例
Mar 25 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
python实现对服务器脚本敏感信息的加密解密功能
Aug 13 Python
pip install 使用国内镜像的方法示例
Apr 03 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 Python
Python使用DFA算法过滤内容敏感词
Apr 22 Python
Python OpenGL基本配置方式
May 20 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
redux-saga 初识和使用
2018/03/10 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
iview实现图片上传功能
2020/06/29 Javascript
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
替换python字典中的key值方法
2018/07/06 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
python中pickle模块浅析
2020/12/29 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
Weblogc domain问题
2014/01/27 面试题
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
文化活动实施方案
2014/03/28 职场文书
中秋节主持词
2014/04/02 职场文书
审计专业自荐信范文
2014/04/21 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android