Problem C: 【高级语言程序设计】6.15 梅森素数

Problem C: 【高级语言程序设计】6.15 梅森素数

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 389  Solved: 168
[Submit] [Status] [Web Board] [Creator:]

Description

素数有无穷多个,但目前只发现有极少量的素数能表示成 2i1i为素数)的形式,形如2i1的素数(如3、7、31、127等),称梅森素数或梅森尼数,它是以17世纪法国数学家马林·梅森的名字命名的。编程计算并输出指数 i[2,n]中的所有梅森尼数,并统计梅森尼数个数,n 值由键盘输入,且 n 不大于 50。

Sample Input Copy

50

Sample Output Copy

2^2-1=3
2^3-1=7
2^5-1=31
2^7-1=127
2^13-1=8191
2^17-1=131071
2^19-1=524287
2^31-1=2147483647
count=8

HINT

相关知识

  1. 梅森素数:梅森素数也称梅森尼数,指形如2i1的素数,其中i是素数。梅森素数以17世纪法国数学家马林·梅森的名字命名。
  2. 幂运算:计算2i可以使用幂运算,可以使用循环或者库函数 pow 进行计算。
#include<stdio.h>
#include<math.h>
int IsPrime(long x);
int Mensenni(int n);
int main(void)
{
    //=======begin=======




    //========end========
}
// 函数功能:判断x是否是素数,若函数返回0,则表示不是素数,若返回1,则代表是素数
int IsPrime(long x)
{
    //=======begin=======




    //========end========
}
// 函数功能:计算并输出指数i在[2,n]中的所有梅森尼数,并返回这些梅森尼数的个数
int Mensenni(int n)
{
    //=======begin=======





    //========end========
}