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 version 2.7 required, which was not found in the registry
Aug 26 Python
Tornado 多进程实现分析详解
Jan 12 Python
Flask 让jsonify返回的json串支持中文显示的方法
Mar 26 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
python中取绝对值简单方法总结
Jul 24 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
Python实现AES加密,解密的两种方法
Oct 03 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与paypal整合方法
2010/11/28 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
Python中matplotlib中文乱码解决办法
2017/05/12 Python
详解如何减少python内存的消耗
2019/08/09 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
python中判断文件结束符的具体方法
2020/08/04 Python
Python logging模块handlers用法详解
2020/08/14 Python
python中温度单位转换的实例方法
2020/12/27 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
幼儿园中班个人总结
2015/02/28 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
Python 中 Shutil 模块详情
2021/11/11 Python
JavaScript实例 ODO List分析
2022/01/22 Javascript
Vue的生命周期一起来看看
2022/02/24 Vue.js
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python