如果一个数字能表示成 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求超级素数代码_[宜配屋]听图阁相关推荐

  1. python做excel表格代码_[宜配屋]听图阁

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  2. python开发一个彩票系统_[宜配屋]听图阁

    本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下 功能:1.注册  2.登录  3.充钱   4.提现  5.下注  6.开奖  7.退出 简述:彩民需要用身份证号码开户注 ...

  3. python对数组的基本操作_[宜配屋]听图阁

    这篇文章主要介绍了简单了解python数组的基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,创建列表 创建一个列表,只要把逗号分隔的不同 ...

  4. python连接oracle详细教程_[宜配屋]听图阁

    1. 连接对象 操作数据库之前,首先要建立数据库连接. 有下面几个方法进行连接. >>>import cx_Oracle >>>db = cx_Oracle.con ...

  5. python的pyaudio教程入门_[宜配屋]听图阁

    ​ 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. PyAudio是Python开源工具包,由名思义,是提供对 ...

  6. python计算圆的体积_[宜配屋]听图阁

    在已知DICOM和三维模型对应掩膜的情况下,计算三维模型的体积. 思路: 1.计算每个体素的体积.每个体素为长方体,x,y为PixelSpacing,z为层间距 使用pydicom.read_file ...

  7. 关于python格式对齐的问题_[宜配屋]听图阁 - 浅谈python str.format与制表符\t关于中文对齐的细节问题...

    写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...

  8. python七彩蟒蛇代码_[宜配屋]听图阁

    本文主要研究的是Python编程turtle的实例,绘制一个七彩蟒蛇..具体如下. 第2周的课后练习里,有一道题目,要求修改"蟒蛇绘制"程序,对Python 蟒蛇的每个部分采用不同 ...

  9. python可以翻墙吗_[宜配屋]听图阁

    那堵墙着实可恨!身处IT这个圈子,经常需要用gg查资料(你也可以用来访问1024,^_^...).当然,你也可以用百度.其实也不是我不爱用百度,是有缘由的,且听我细细道来.有一次闲得蛋疼,想看看会不会 ...

最新文章

  1. 特斯拉Autopilot事故频发,真正意义上自动驾驶还要多久问世?
  2. Rancher-创建自己的应用商店教程
  3. 【scala】类的定义和单例对象
  4. java 工作 日期转换代码,判断是否是当天,然后日期转换
  5. [RabbitMQ]工作队列原理_代码实现
  6. 记一次打包的诡异现象
  7. 乔治敦大学计算机专业排名,2020USNEWS数据科学与分析专业综合排名(上)
  8. NetBeans 6.9 发布后选版 1 已经可用
  9. 软件工程 之 画扇面
  10. HTTP协商缓存与HTTP强缓存
  11. Selenium Grid的搭建方法
  12. CodeForces 444C. DZY Loves Physics(枚举+水题)
  13. 简单的用堆栈实现的表达式计算
  14. HTML5学习笔记(二):HTML基础学习之二
  15. 安装QQ、TIM提示:安装包可能被非法改动导致安装失败,请从官网下载最新安装包重新安装
  16. 关于kindle mobi词典解析
  17. OSPF--DR与BDR
  18. LearnGL - 03 - DrawQuad - VBO/EBO - 理解 CW, CCW 的正背面
  19. 数据库三大顶级会议 VLDB ICDE SIGMOD
  20. .Net Core MVC引入static静态变量到.cshtml页面

热门文章

  1. WCF4中舍去svc文件
  2. C/C++头文件一览
  3. cmake的使用-if-else的逻辑流程详解
  4. stm32中#ifndef __LED_H的作用
  5. SpringBoot中英文切换/国际化——java后端怎么用预置文本的内容替换web网页内容(Resource Bundle)
  6. 汇编语言运算符优先级
  7. c语言那些细节之a+1和a+1的区别
  8. java Junit 为什么@Test注解里的方法必须是public void修饰的
  9. error while loading shared libraries: libopencv_highgui.so.3.2: cannot open shared object file 的解决办法
  10. 简单支付验证(SPV)与创新