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 相关文章推荐
Django静态资源URL STATIC_ROOT的配置方法
Nov 08 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
Python中内建函数的简单用法说明
May 05 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
Oct 09 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
python计算auc的方法
Sep 09 Python
python爬虫如何解决图片验证码
Feb 14 Python
Python WSGI 规范简介
Apr 11 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
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
javascript如何创建对象
2016/08/29 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
PHP7新特性简述
2017/06/11 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
python中随机函数random用法实例
2015/04/30 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python如何通过protobuf实现rpc
2016/03/06 Python
tornado 多进程模式解析
2018/01/15 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Python笔记之工厂模式
2019/11/20 Python
哪些是python中web开发框架
2020/06/17 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
实验心得体会范文
2016/01/25 职场文书