C语言如何做这个题??

来源:百度知道 编辑:UC知道 时间:2024/05/08 15:13:21
梅森尼数是指使2(n次方)-1为质数的自然数n,求在[1,21]之内
1、有多少个梅森尼数
2、第二大的梅森尼数

给,已经编译运行确认:
#include<conio.h>
#include<stdio.h>
#include<math.h>

int isPrime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}

int main()
{
int min=1,max=21;
int i,count=0,second;
int num;

for(i=max;i>=min;i--)
{
num=pow(2,i)-1;
if(isPrime(num))
{
count++;
if(count==2) second=num;
}
}

printf("在[1,21]之内,有%d个梅森尼数。\n第二大的梅森尼数为: %d",count,second);
getch();
return 0;
}