C语言编程:形如2^n-1的素数成为梅森数,输入一个正整数n(n<20),编程输出所有不超过2^n-1的梅森数。

不急,求对。谢谢!

#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;
}

追问

你好像把题目意思理解错了,是输入一个小于20的正整数(n),然后输出小于2^n-1的梅森数,比如输入6,应该输出3,7,21

温馨提示:答案为网友推荐,仅供参考