精华内容
下载资源
问答
  • 如果一个梅森数是素数,则称其为梅森素数。例如22-1=3、23-1=7都是梅森素数。 当n=2,3,5,7时,Mn 都是素数,但n=11时,Mn=M11=211-1=2047=23X89,显然不是梅森素数。 1722年,瑞士数学大师欧拉证明了231-1=...
  • CS1200-计算第八个梅森素数。 给定的MATLAB代码是这样的: clear ; clc ; close all ; format compact ; tol = 1e- 10 ; nlimit = 2000000000 ; primelist = primes(nlimit); nprimes = length(primelist) fprintf( ...
  • 利用python3实现求一个数的反向数;判断一个数是否是回文数;判断是否是回文素数,反素数,梅森素数,双素数。
  • 梅森素数

    2021-01-12 10:54:36
    梅森素数是由梅森数而来。所谓梅森数,是指形如2^p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数(如3、7、31、127等等)。它是以17世纪法国数学家马林·梅森的名字命名。 Input 输入...

    Description
    梅森素数是由梅森数而来。所谓梅森数,是指形如2^p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数(如3、7、31、127等等)。它是以17世纪法国数学家马林·梅森的名字命名。

    Input
    输入为多行,每行一个正整数p(1<p<64),至EOF结束。除了2之外,p其它的可能输入都是奇数。

    Output
    输出为多行,每行一个Mp。如果Mp是梅森素数,就输出它的值,否则就输出“no”。

    Sample Input
    2
    3
    5
    7
    9

    Sample Output
    3
    7
    31
    127
    no

    一,直接遍历,但时间长

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	unsigned long long int i,n,p;
    	
    	while(scanf("%llu",&p)!=EOF)
    	{
    		int flag=0;
    		
    		n=pow(2,p)-1;  //梅森数 
    		
    		for(i=2;i<=sqrt(n)+1;i++) //素数 
    		{
    			if(n%i == 0) flag=1; 
    		}
    		
    		if(flag==1) printf("no\n");
    		else printf("%llu\n",n);
    
    	}
    }
    

    二,先判断p是不是素数

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	unsigned long long i,p,n,flag=0;
    	
    	while(scanf("%llu",&p)!=EOF)
    	{
    		if(p!=2)
    		{
    			for(i=2;i<sqrt(p)+1;i++)
    			{
    				if(p%i==0)
    				{
    					flag=1;break;
    				}
    			}
    		if(flag==1) printf("no\n");		
    		}
    		
    		if(flag==0)
    		{
    			n=pow(2,p)-1;
    			for(i=2;i<=sqrt(n)+1;i++)
    			{
    				if(n%i==0) 
    				{
    					flag=1;
    					break;
    				} 
    			}
    			
    			if(flag==1) printf("no\n");
    			else printf("%llu\n",n); 	
    		}	
    		
    		flag=0;	
    	}
    }
    
    展开全文
  • 梅森数与梅森素数 梅森数(Mersenne number)又称麦森数,是指形如2^p-1的正整数,其中指数p是素数,常记为Mp 。若其是素数,则称为梅森素数。 ———————注意——————— 梅森数:满足2^p—1的所有数,...

    梅森数与梅森素数

    梅森数(Mersenne number)又称麦森数,是指形如2^p-1的正整数,其中指数p是素数,常记为Mp 。若其是素数,则称为梅森素数。

    ———————注意———————

    • 梅森数:满足2^p—1的所有数,梅森数可能是合数也可能是素数。
    • 梅森素数:梅森数中的素数,才称之为梅森素数。

    举例:2^11—1=2047=23×89,
    所以2047是合数,只能称其梅森数。————————————————
    梅森素数的确定:就是判断一个符合格式要求的梅森数是素数即可 。

    算法:打印前n个梅森素数。(C语言版)

    /* 简介:形为 Mp = 2^p-1,p为素数的数字叫做梅森数 。当梅森数Mp为素数时,叫做 Mersenne素数。*/
    /*要求:计算前n个 Mersenne素数。*/
    /*素数判断:除了2和3以外,质数只分布在6x(x>=1)的两侧,所以只需要判断 6x-1 与 6x+1 .*/
    /*代码缺陷:只能打印前8个梅森素数。因为定义的梅森数Mp是int类型的。第九个及以后的范围超过了int类型的范围。*/
    #include<stdio.h>
    #include<math.h>
    int Isprime(int num)//判断是否为素数,是则返回1(真),否者返回0(假) 
    {
    	int i;
        for (i = 2; i <= sqrt(num); i++)
        if (num % i == 0) return 0;
        return 1;
    }
    int main()
    {
    	int n;
    	printf("--------------< 计算前n个Mersenne素数 >------------hao\n\n"); 
    	printf("请输入n(n<=8):");
    	scanf("%d",&n);
    	int count=3,p=2,x,Mp;
    	printf("\ni      |p      |2^p-1  \n");
    	printf("_______|_______|________\n");
    	if(n>=1) printf("1      |2      |3      \n");
    	if(n>=2) printf("2      |3      |7      \n");//如果n符合要求则打印前两个梅森素数 
    	for(x=1;count<=n;++x)
    	{
    		p = 6*x-1;//6x的左侧 
    		Mp=pow(2,p)-1;
            if(Isprime(p) && Isprime(Mp) &&count<=n ) //如果p为素数,梅森数Mp也为素数,则其为梅森素数。且若这是前n个梅森素数,则打印。 
            {
              printf("%-7d|%-7d|%-7d\n",count,p,Mp);
              count++;
            }
            
            p = 6*x+1;//6x的右侧 
            Mp=pow(2,p)-1;
            if( Isprime(p) && Isprime(Mp) && count<=n ) 
            {
             printf("%-7d|%-7d|%-7d\n",count,p,Mp);
             count++;
            }  		
    	}
    	return 0;
     } 
    

    输入输出样例:

    --------------< 计算前n个Mersenne素数 >------------hao
    
    请输入n(n<=8):8
    
    i      |p      |2^p-1
    _______|_______|________
    1      |2      |3
    2      |3      |7
    3      |5      |31
    4      |7      |127
    5      |13     |8191
    6      |17     |131071
    7      |19     |524287
    8      |31     |2147483647
    
    展开全文
  • 第41个梅森素数已被发现 (2004年)
  • 梅森素数python实现

    2021-01-15 11:47:51
    这里写目录标题问题描述...若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。 其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7 但人们很快发现,当n很大时,判

    问题描述

    如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数”

    例如:6 = 1 + 2 + 3
    
    28 = 1 + 2 + 4 + 7 + 14
    
    早在公元前300多年,欧几里得就给出了判定完全数的定理:
    
    若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。
    
    其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7
    
    但人们很快发现,当n很大时,判定一个大数是否为素数到今天也依然是个难题。
    
    因为法国数学家梅森的猜想,我们习惯上把形如:2^n - 1 的素数称为:梅森素数。
    
    截止2013年2月,一共只找到了48个梅森素数。 新近找到的梅森素数太大,以至于难于用一般的编程思路窥其全貌,所以我们把任务的难度降低一点:
    
    1963年,美国伊利诺伊大学为了纪念他们找到的第23个梅森素数 n=11213,在每个寄出的信封上都印上了“2^11213-1 是素数”的字样。
    
    2^11213 - 1 这个数字已经很大(有3000多位),请你编程求出这个素数的十进制表示的最后100位。
    

    思路分析及代码实现

    这道题用python来实现的话确实很简单,直接把数字转成字符串然后切片取出后一百位就可以了

    print(str(2 ** 11213 - 1)[-100:])
    
    展开全文
  • 梅森素数(C语言求解)

    万次阅读 2019-05-30 14:55:51
    如果一个梅森数是素数,则称其为梅森素数。 另外,由因式分解法可以证明,如果 -1 是素数,则 n 也一定是素数。 例如,当 n=2,3,5,7 时,-1 都是素数,但 n=11 时,-1 显然不是梅森素数。 迄今为止,人类仅...

    梅森数(Mersenne Prime)指的是形如 2^{n}-1的正整数,其中指数 n 是素数。如果一个梅森数是素数,则称其为梅森素数

    另外,由因式分解法可以证明,如果 2^{n}-1 是素数,则 n 也一定是素数。

    例如,当 n=2,3,5,7 时,2^{n}-1 都是素数,但 n=11 时,2^{n}-1 显然不是梅森素数。

    迄今为止,人类仅发现了 51 个梅森素数。梅森素数历来都是数论研究中的一项重要内容,也是当今科学探索中的热点和难点问题。

    试求出指数 n<20 的所有梅森素数。

    问题分析

    要编程求解的问题是找出指数 n<20 的所有梅森素数。根据梅森素数的定义,我们可以先求出n<20的所有梅森数,再逐一判断这些数是否为素数。如果是素数,则表示该数为梅森素数,打印输出即可;否则不是梅森素数。

    算法设计

    要求出 n<20 的所有梅森数,因此在本题的算法设计中需要釆用循环结构。

    设变量 mp 存储梅森数,整数 i 表示指数,其取值从 2〜19,i 每变化一次,都相应的计算出一个梅森数,存放在 mp 中。对每次计算得到的当前 mp 值,都调用函数 prime() 进行判断。

    在判断 mp 是否为素数时,可以定义一个函数 prime(),每次都将 mp 的当前值作为实参传递给函数prime(),并判断是否为素数。如果 n 为素数,则 prime() 函数返回值为 1,否则 prime() 函数返回值为 0。

    若 prime() 函数返回值为 1,则当前 mp 为梅森素数,应该将其输出;若 prime() 函数返回值为 0,则当前 mp 不是梅森素数。

    程序流程图:

    下面是完整的代码:

    #include <stdio.h>
    #include <math.h>
    int prime(int n)
    {
        int i;
        long k;
        k = sqrt(n) + 1;
        for (i = 2; i <= k; i++)
        	if (n%i == 0)
        	    return 0;
            return 1;
    }
    int main()
    {
        int mp, n = 0, i;
        printf("MersennePrime:\n");
        for (i = 2; i <= 20; i++)
        {
        	mp = pow(2, i) - 1;
    	if (prime(mp))
    	{
    	    n++;
    	    printf("M(%d)=%d", i, mp);
           	    printf("\n");
    	}
        }
        printf("thenumber of Mersenne Prime less than 20 is:%d\n", n);
        return 0;
    }
    

    运行结果:

    Mersenne Prime:
    M(2)=3
    M(3)=7
    M(5)=31
    M(7)=127
    M(13)=8191
    M(17)=131071
    M(19)=524287
    the number of Mersenne Prime less than 20 is:7

    提示:更有精彩例题请进入C语言中文网实例精讲,100个C语言实例免费与你分享!

    展开全文
  • 6.28(梅森素数)如果一个素数可以写成2^p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数。编写程序,找出p≤31的所有梅森素数,然后显示如下结果题目题目描述破题代码运行示例 题目 题目描述 6.28(梅森...
  • 存在无穷多个梅森素数

    千次阅读 2019-04-12 19:33:59
    早在公元前300多年,古希腊数学家欧几里得就开创了研究 2p−12^{p}-12p−1 的先河....由于马林·梅森是当时欧洲科学界一位独特的中心人物,梅森学识渊博、才华横溢、为人热情以及最早系统而深入地研究 2p−12^{...
  • 梅森素数与完全数 欧几里得完全数公式 如果2p−12^p-12p−1是素数,则2p−1(2p−1)2^{p-1}(2^p-1)2p−1(2p−1)是完全数。 验证设q=2p−1q=2^p-1q=2p−1,我们需要验证2p−1q2^{p-1}q2p−1q是完全数。2p−1q2^{p-1}q2...
  • 梅森素数为什么这么重要?

    千次阅读 2018-12-10 20:52:51
    “它反映了一个国家的科技水平,是人类智力发展在数学上的一种标志,更是整个科技发展的里程碑之一。梅森素数究竟是个怎样的数,为何如此重要呢?”众所周知,素数也叫质数,是只能被...
  • Python向左,数学向右:梅森素数

    千次阅读 多人点赞 2021-04-27 16:39:41
    暮色苍茫,一辆双门版的福特雷鸟在杰姆斯山的森林公路上飞驰,车灯照亮了道路两侧的云杉树。作为对我协助绘制乌拉姆素数分布图的回报,乌拉姆今晚开车载我去城里的酒吧小酌。
  • Java获取梅森素数

    2019-06-29 14:27:29
    如果一个素数你可以表示成为2^p-1(p为正整数),那么这个素数就是梅森素数梅森素数是一种很有趣的素数,到目前为之只发现了51个。 获得梅森素数的程序可以分为两个methods: 一:判定是否为素数 二:判定是否为梅森...
  • 小学数学数学故事梅森素数:第47个梅森素数被发现
  • 若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。 其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7 但人们很快发现,当n很大时,判定一个大数是否为素数到...
  • C#找梅森素数

    千次阅读 2016-02-28 16:20:11
    C#找梅森素数梅森素数是由梅森数而来。所谓梅森数,是指形如2p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数。比如2^2-1=3,2^3-1=7,2^5-1=31,2^7-1=127,指数P也是素数,同时也用M2...
  • 本博文源于js基础,旨在讨论找出前六个梅森素数
  • 梅森素数c++实现

    千次阅读 2019-01-20 17:11:35
    如果一个梅森数是素数,则称其为梅森素数。 当n=2,3,5,7时, 都是素数,但n=11时,,显然不是梅森素数。 1722年,瑞士数学大师欧拉证明了 是一个素数,它共有 10 位数,成为当时世界上已知的最大素数。 目前...
  • python梅森素数/完全数

    千次阅读 2020-04-30 15:31:12
    完全数(Perfect number): 称完美数或完备数,是一些特殊的自然数...梅森数是素数,就称为梅森素数,即:2^ p-1为素数; 完全数和梅森素数关系: 如果2^ p-1为素数,那么(2^ p-1)* 2^(p-1)便是一个完全数。...
  • 梅森素数与费马素数

    2020-01-15 22:43:57
    梅森素数 梅森素数是由梅森数而来。 所谓梅森数,是指形如2p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数。 用因式分解法可以证明,若2n-1是素数,则指数n也是素数;反之,当n是...
  • 梅森素数汇总

    千次阅读 2015-12-21 22:46:47
    第1个梅森素数:当p=2时,M_2=(2^2)-1=3,位数为1位,发现于公元前300年左右。第2个梅森素数:当p=3时,M_3=(2^3)-1=7,位数为1位,发现于公元前300年左右。第3个梅森素数:当p=5时,M_5=(2^5)-1=31,位数为2位,...
  • 梅森素数旋转法

    千次阅读 2018-09-24 15:18:30
    梅森素数旋转法 它是一种伪随机数生成算法,它能够根据某个初始种子生成随机串。由于该该算法的&amp;amp;amp;amp;quot;旋转&amp;amp;amp;amp;quot;特性,生成的随机串是有周期的。在周期外的数是可以通过上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,076
精华内容 430
关键字:

梅森素数