#include<
stdio.h>
int isprime(int n)
{int i;
for(i=2;i*i<=n;i++)
if(!(n%i))return 0;
return n>1;
}
int main()
{int i,a=1;
for(i=1;i<20;i++)
{a=(1<<i)-1;
if(isprime(a))
printf("n=%d\t%d\n",i,a);
}
return 0;
}
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/f603918fa0ec08fabbb11d0652ee3d6d54fbdada?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问你好像把题目意思理解错了,是输入一个小于20的正整数(n),然后输出小于2^n-1的梅森数,比如输入6,应该输出3,7,21