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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

6

输出样例:

3
7
31

代码

#include <stdio.h>
#include <math.h>

double isMasonNumber(int n);	
int main()
{
    int i,n,number,flag=0;;
    scanf("%d",&n);
    //直接输出范围过大,从2^n-1入手,只用确认7个数。 
    for(i=0;i<=n;i++)
    {
    	number=pow(2,i)-1;
    	if(isMasonNumber(number))
    	{
    		printf("%d\n",number);
    		flag=1;
		}
	}
	
	if(flag==0)
		printf("None");
	
    return 0;
}

double isMasonNumber(int n)
{
	int i,number,ret=1,mason=0;
	
	if(n<2)
		ret=0;
	
	//先确定素数 
	for(i=2;i<n;i++)
		if(n%i==0)
		{
			ret=0;
			break;
		}
	//再确认+1能否被2整除 
	if(ret&&(n+1)%2==0)
	{
		mason=1;		
	}
	
	return mason;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值