c语言题目,求解释,谢谢了!!

 我来答
447587096
2015-11-26 · TA获得超过5047个赞
知道大有可为答主
回答量:2504
采纳率:70%
帮助的人:1183万
展开全部

梅森素数是由梅森数而来。所谓梅森数,是指形如2p-1的一类数,常记为Mp 。如果梅森数是素数,就称为梅森素数。

输入3,

那我们就寻找找p<=3梅森数的个数

  1. 当p=3时,2的三次方-1=7是梅森素数

  2. 当p=2时,2的二次方-1=3是梅森素数

所以n=3是我们可以找到2个梅森数,所以输出2

程序是这样的:

#include<stdio.h>

int power(int m,int p)

{

if(p == 1)

return m;

else

return power(m,p-1)*m;

}

int is_prim(int n)

{

int i;

for(i = 2; i < n; i++)

{

if(n % i == 0)

break;

}

if(i == n)

return 1;

else 

return 0;

}

void main()

{

int p,n;

int count = 0;//计数器

 scanf("%d",&n);

 for(p = n;p > 1; p--)

 {

     if(is_prim(power(2,p)-1))//判断2^p-1是否是素数,是的话count就加1

{

 

count++;

}


 }

 printf("%d\n",count);

}

鸶溷之鬻
2015-11-26
知道答主
回答量:1
采纳率:0%
帮助的人:1184
展开全部
#include<stdio.h>
void main()
{
int p,n;
for(n=1;n<=31;n++)
for(p=1;p<=n;p++)
if(n==2^p-1)
printf("n=%d",n);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式