7-27 梅森数

题目内容

输入格式:

输入在一行中给出正整数n(n<20)。

输出格式:

按从小到大的顺序输出所有不超过2
n
−1的梅森数,每行一个。如果完全没有,则输出“None”。

输入样例:

6

输出样例:

3
7
31

ACcode:

#include <bits/stdc++.h>

using namespace std;

bool isPrime(int num){
    if(num <= 1)
        return false;
    int sqrtNum = sqrt(num);
    for(int i=2; i<=sqrtNum; i++){
        if(num%i == 0)
            return false;
    }
    return true;
}

bool isMersenne(int a){
    double num=log(a+1)/log(2);

    return num == floor(num);
    //使用 floor() 函数来获取一个 double 类型的数的整数部分,然后比较整数部分和原始数是否相等。如果相等,则表示这个数是整数。
}


int main(){
    int n;
    cin >> n;
    int flag = 0;

    double mersenne = pow(2,n)-1;
    for(int i=2; i<=mersenne; i++){
        if(isPrime(i) && isMersenne(i)){
            flag = 1;
            cout << i <<endl;
        }
    }
    if(flag == 0){
        cout<<"None";
    }

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 梅森数是指形如2的n次方减1的质数。例如,2^3-1=7和2^5-1=31都是梅森数。1722年,欧拉证明了2^16-1=65535是一个梅森数,并将其命名为梅森素数。后来,瑞士数学大师欧拉证明了2^31-1=2147483647也是一个梅森数,当时世界上最大的质数。 ### 回答2: 梅森数是指形如2^n-1的素数,其n是自然数。这种数列的命名来自于法国数学家马林·梅森(Marin Mersenne),他在17世纪提出了这个问题并试图找到尽可能多的梅森素数。现在我们知道,梅森素数非常稀有,前31个梅森素数只有12个是已知的。 关于2^31-1的素性,欧拉的证明固然是一个重要的里程碑,同时也激发了人们对于梅森素数研究的兴趣。在欧拉之后,一批杰出的数学家接续其研究,包括另一位盲数学家利奥波德·奥尔斯泰因(Leopold Kronecker),他听说了欧拉的证明后,试图为之提供另一种证明,最终在两年的工作后,他放弃了证明,但证明他本人需要用到一些当时还未成熟的数学思想和概念。 梅森素数不仅是数学上一个有趣的问题,也具有很多实际应用。例如在密码学,人们利用梅森素数的性质来构造出一类强加密算法,这种加密算法被广泛地用于保障网络传输的信息安全。此外,梅森素数还是一种有广泛研究价值的数学工具,在各种数学分支都有不少应用。 ### 回答3: 梅森数是一种特定形式的素数,即形如2的n次方减1的数,其n为正整数。这种数学结构体现了数学的美妙之处,同时也是理解素数和大数问题的重要途径。梅森数存在的时间可以追溯到公元前300年左右的古希腊,当时欧几里德就提出了一个关于梅森数的猜想,认为所有形如2的n次方减1的数字都是素数。然而,这个猜想并不正确,因为当n等于合数时,得到的数字就不是素数了。 尽管欧几里德的猜想不成立,但对梅森数的研究一直持续到了现代。在18世纪后半期,瑞士的数学家欧拉证明了2的31次方减1是一个素数,也就是2147483647。这是一个很大的数,当时人们都认为是世界上最大的素数,欧拉因此被誉为“素数之王”。这个素数被称为梅森素数,是最早被证明是素数的梅森数之一。它还是计算机科学常用的一个数字,因为它恰好可以用32位二进制表示。 虽然梅森素数似乎很神奇,但它实际上属于一类特殊的素数,称为梅森质数。梅森质数的形式是2的p次方减1,其p是另一个素数。由于p必须是素数,因此梅森质数对素数的研究有一定的意义。梅森质数也是一种较为特殊的数字,很多数学家都对它进行过深入的研究。 除了欧拉以外,还有很多著名的数学家研究过梅森数,包括哥德尔、费马、黎曼等等。他们通过研究梅森数,发现了很多有趣的性质和规律,也解决了许多数学难题。因此,梅森数虽然看起来简单,但实际上是数学非常重要的一个概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值