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科学计算环境推荐——Anaconda
Jun 30 Python
使用python编写android截屏脚本双击运行即可
Jul 21 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
numpy中以文本的方式存储以及读取数据方法
Jun 04 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
Jan 08 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
Python移位密码、仿射变换解密实例代码
Jun 27 Python
Python中time标准库的使用教程
Apr 13 Python
python读取mat文件生成h5文件的实现
Jul 15 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垃圾回收机制对内存泄露的处理
2013/06/14 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
用python写asp详细讲解
2013/12/16 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
教师远程培训感言
2014/03/06 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
500字小学生检讨书
2015/02/19 职场文书
复试通知单模板
2015/04/24 职场文书
品德与社会教学反思
2016/02/24 职场文书
nginx.conf配置文件结构小结
2022/04/08 Servers