求3-n之间所有素数的平方根之和,我这个问题出在哪里啊
#include<stdio.h>
#include<math.h>
double fun(int n)
{
int m,i,k;
double sum=0;
m=sqrt(i);
for(i=3;i<=n;i++)
{
for(k=2;k<=m;k++)
if(i%k==0)break;
if(k>m)
sum=sum+m*m;
}
return sum;
}
int main()
{
int n;
printf("输入大于2小于1000的数n=");
scanf("%d",&n);
printf("3-n之间所有素数的平方根之和=%lf",fun(n));
return 0;
}
修改如下,供参考:
#include<stdio.h>
#include<math.h>
double fun(int n)
{
int m,i,k;
double sum=0;
//m=sqrt(i); 修改
for(i=3;i<=n;i++)
{
for(k=2,m=sqrt(i);k<=m;k++)//for(k=2;k<=m;k++) 修改
if(i%k==0)break;
if(k > m)
sum=sum+sqrt(i); //sum=sum+m*m; 修改 素数的平方根
}
return sum;
}
int main()
{
int n;
printf("输入大于2小于1000的数n=");
scanf("%d",&n);
printf("3-n之间所有素数的平方根之和=%lf",fun(n));
return 0;
}
#include<stdio.h>
#include<math.h>
double fun(int n)
{
int i, k;
double sum = 0;
for (i = 3; i <= n; i++)
{
int m = sqrt(i);
for (k = 2; k <= m; k++)
if (i % k == 0)
break;
if (k > m && i <= n)
sum += m * m;
}
return sum;
}
int main()
{
int n;
printf("输入大于2小于1000的数n=");
scanf("%d", &n);
printf("3-n之间所有素数的平方根之和=%lf", fun(n));
return 0;
}
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
m=sqrt(i);是要闹哪样,i还没赋值呢,是个随机数,m也是个随机数