美文网首页
超级素数幂

超级素数幂

作者: EBcoco | 来源:发表于2019-01-10 10:55 被阅读0次

如果一个数能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数就是超级素数幂

return: 如果是,返回p和q,如果不是,返回False

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

相关文章

  • 超级素数幂

    问题描述 如果一个数字能表示为pq(表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给...

  • 超级素数幂

    如果一个数能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数就是超级素数幂 return: 如果是,返回...

  • [编程题] 超级素数幂

    如果一个数字能表示为pq(表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整...

  • 机试常用算法和题型-数学专题

    数学专题,模拟 素数问题,普通筛和埃氏筛 另一种筛法,连续素数求和得超级素数 质因数 奇数魔方图 求小数的循环部分...

  • 1622:判断数(快速幂+素数)

    Description给定一个n , 我们把对任意的1

  • 数学专题整理

    数学专题整理 学习清单 快速幂、矩阵、数论(逆元、容斥、素数筛、高斯消元)、FFT 归纳整理 GCD与LCM GC...

  • 数论模版

    参考我的博客代码github 数论 最大公约数(GCD)/最小公倍数(LCM) 素数判断及打表 快速幂/乘取模 拓...

  • noip模板整理

    数论快速幂高精度加法减法乘法除法线性筛素数埃氏筛法 O(nlglgn)最大公约数(gcd)最小公倍数(lcm)扩展...

  • 第六章第二十七题(反素数)(Emirp) - 编程练习题答案

    **6.27(反素数)反素数(反转拼写的素数)是指一个非回文素数,将其反转之后也是一个素数。例如:17是一个素数,...

  • 大数C(n,m)模板+素数+素数因子p的指数+快速幂

网友评论

      本文标题:超级素数幂

      本文链接:https://www.haomeiwen.com/subject/wevorqtx.html