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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
Python猜数字算法题详解
Mar 01 Python
python如何安装下载后的模块
Jul 03 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
Python 解析xml文件的示例
Sep 29 Python
python中绕过反爬虫的方法总结
Nov 25 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 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创建PDF中文文档
2006/10/09 PHP
一个显示天气预报的程序
2006/10/09 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
EsLint入门学习教程
2017/02/17 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
python request 模块详细介绍
2020/11/10 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
员工拓展培训方案
2014/02/15 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
关于Python使用turtle库画任意图的问题
2022/04/01 Python
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python