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、Javascript中的闭包比较
Feb 04 Python
以一段代码为实例快速入门Python2.7
Mar 31 Python
详解在Python的Django框架中创建模板库的方法
Jul 20 Python
Python中Threading用法详解
Dec 27 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
Python字符串逆序的实现方法【一题多解】
Feb 18 Python
Python中私有属性的定义方式
Mar 05 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
Python基于pyecharts实现关联图绘制
Mar 27 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
服务器端解压缩zip的脚本
2006/12/22 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
PHP网络操作函数汇总
2015/05/18 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python contextlib模块使用示例
2015/02/18 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python中装饰器高级用法详解
2017/12/25 Python
python实现梯度下降算法
2020/03/24 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
介绍一下如何优化MySql
2016/12/20 面试题
超市营业员求职简历的自我评价
2013/10/17 职场文书
编辑找工作求职信范文
2013/12/16 职场文书
房屋委托书范本
2014/04/04 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
怎样写好工作计划
2019/04/10 职场文书
导游词之贵州织金洞
2019/10/12 职场文书