实验4-2-9 梅森数 (20分)(有点难)

 形如2​n​​−1的素数称为梅森数(Mersenne Number)。例如2​2​​−1=3、2​3​​−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2​31​​−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。

本题要求编写程序,对任一正整数n(n<20),输出所有不超过2​n​​−1的梅森数。

输入格式:

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

输出格式:

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

输入样例:

6

输出样例:

3

参考答案: 

#include<stdio.h>
#include<math.h>
int main()
{
  int i,j,n,count = 0,flag,a;
  scanf("%d",&n);
  for(i = 2; i <= n; i++)//2的n次方减1
  {
    a = pow(2,i) - 1;
	for(j = 2; j < a; j++)//判断素数
    {
      flag = a % j;
      if(flag == 0)
      {break;}
    }
    if(flag != 0)
    {
		printf("%d\n",a);
		count++;
	}
  }
  if(count == 0)//不是素数,输出none
  {printf("None");}
  return 0;
}

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

问题出现再研究

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值