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实现封装得到virustotal扫描结果
Oct 05 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
Nov 06 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
基于h5py的使用及数据封装代码
Dec 26 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
Python txt文件常用读写操作代码实例
Aug 03 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 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图片上传存储源码并且可以预览
2011/08/26 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
php组合排序简单实现方法
2016/10/15 PHP
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
Python的高级Git库 Gittle
2014/09/22 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
深入理解Django中内置的用户认证
2017/10/06 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
详解python 中in 的 用法
2019/12/12 Python
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
JAVA中运算符的分类及举例
2015/09/12 面试题
女方回门宴答谢词
2014/01/14 职场文书
大学活动邀请函
2014/01/28 职场文书
医院党员公开承诺书
2014/08/30 职场文书
效能风暴心得体会
2014/09/04 职场文书
五一劳动节活动总结
2015/02/09 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
Django项目如何正确配置日志(logging)
2021/04/29 Python
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python