使用列表推导式和我的代码查找梅森素数 [英] Find Mersenne prime numbers using list comprehensions and my code

查看:60
本文介绍了使用列表推导式和我的代码查找梅森素数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编写此代码是为了查找素数,但如何更改它以查找梅森素数?

I wrote this code to find prime numbers, but how could I change it to find Mersenne prime numbers?

def prime_test_list(n,known_primes):
k = 1
stop_val = len(known_primes)
if(n>2):
    while k<stop_val:
        cprime = known_primes[k]
        if n%cprime == 0:
            return 0            
        else:
            k+=1
    return 1
else:
    return 1

def prime_print_list(a):
    n = 2
    known_primes = [1] 
    while(n<a):
        val = prime_test_list(n,known_primes)
        if(val==1):
            known_primes.append(n)            
        n+=1
    print known_primes

推荐答案

是这样的:

def mersenne_test(n):

    k = 0
    m = 0
    while m<=n:
        m = 2**k-1
        if(n==m):
            return "This number is a Mersenne number since it is equal by to 2**%d-1" % k
        k += 1
    return "This number is not a Mersenne number."

这篇关于使用列表推导式和我的代码查找梅森素数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆