大一新生,在求梅森尼数个数的时候卡住了,循环这一块自己学的不是特别好,能给点帮助吗
供参考:
#include <stdio.h>
#include <math.h>
double Isprime(double n);
int main()
{
double mul=2;
int n=21, cnt=0, r=2, i;
//printf("Input n:\n");
//scanf("%d", &n);
for(i=2;i<=n;i++)
{
mul=mul * r;
if(Isprime(mul-1))
{
cnt++;
printf("2^%d-1=%.0lf\n", i, mul-1);
}
}
printf("count=%d\n", cnt);
return 0;
}
double Isprime(double n)
{
double i;
if(n <= 1)
return 0;
for(i=2;i <= sqrt(n);i++)
{
if(n/i==(int)(n/i))
return 0;
}
return 1;
}