python判断数字是否是超级素数幂

 更新时间:2018年09月27日 14:49:46   作者:冬日新雨  
这篇文章主要为大家详细介绍了python判断数字是否是超级素数幂,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

如果一个数字能表示成 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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 用C++封装MySQL的API的教程

    用C++封装MySQL的API的教程

    这篇文章主要介绍了用C++封装MySQL的API的教程,包括对语句拼装器SQLJoin的介绍,需要的朋友可以参考下
    2015-05-05
  • python3使用requests模块爬取页面内容的实战演练

    python3使用requests模块爬取页面内容的实战演练

    本篇文章主要介绍了python3使用requests模块爬取页面内容的实战演练,具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • wxPython实现窗口用图片做背景

    wxPython实现窗口用图片做背景

    这篇文章主要为大家详细介绍了wxPython实现窗口用图片做背景,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python Opencv实战之印章提取的实现

    Python Opencv实战之印章提取的实现

    很多时候我们需要电子版的章,但有些同学并不会通过Photoshop抠图获取。因此本文将利用Python OpenCV来实现印章的提取,感兴趣的可以了解一下
    2022-03-03
  • Django 实现图片上传和显示过程详解

    Django 实现图片上传和显示过程详解

    这篇文章主要介绍了Django 实现图片上传和显示过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python键值互换的实现示例

    Python键值互换的实现示例

    Python键值互换是一种对Python字典类型中键值对进行反转的技术,有时候,我们需要以值作为键,以键作为值来操作字典,这时候就需要用到键值互换的技术,本文主要介绍了Python键值互换的实现示例,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python爬虫入门教程02之笔趣阁小说爬取

    Python爬虫入门教程02之笔趣阁小说爬取

    这篇文章主要介绍了Python爬虫入门教程02之笔趣阁小说爬取,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 使用python实现省市三级菜单效果

    使用python实现省市三级菜单效果

    本文给大家分享的是使用使用python实现省市三级菜单效果的代码,非常的实用,有需要的小伙伴可以参考下。
    2016-01-01
  • python实现批量监听页面并发送邮件

    python实现批量监听页面并发送邮件

    这篇文章主要为大家详细介绍了python如何实现自动化批量监听页面并发送邮件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Python实现基于SVM的分类器的方法

    Python实现基于SVM的分类器的方法

    这篇文章主要介绍了Python实现基于SVM的分类器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论