能帮我找一下这个程序错在哪?结果不对,貌似好像是pow出了问题,怎么改都不行!结果都是零!
/*形如2n-1的素数称为梅森数。例如22-1=3、23-1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231-1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。请定义和调用函数mersenne()输出指数n<20的所有梅森数。
*/
#include<stdio.h>
#include<math.h>
int mersenne(int n);
main()
{
double y;
for(int i=1;i<=20;i++)
{
y=pow(2,i)-1;
if(mersenne(y)==1)
printf(" %d ",y);
}
return 0;
}
int mersenne(int n)
{
for(int i=2;i<=n-1;i++)
{
if(n%i==0)
break;
if(i>=n-1)
return 1;
}
}