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获取Windows或Linux主机名称通用函数分享
Nov 22 Python
Python配置mysql的教程(推荐)
Oct 13 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
PyCharm设置SSH远程调试的方法
Jul 17 Python
tensorflow更改变量的值实例
Jul 30 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
python可视化之颜色映射详解
Sep 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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
php实现将Session写入数据库
2015/07/26 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python如何访问字符串中的值
2020/02/09 Python
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
小学生自我评价范例
2013/09/24 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
初中教师个人总结
2015/02/10 职场文书
放假通知范文
2015/04/14 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js