c语言问题 fun函数功能是计算3到n之间所有素数的平方根之和,我写的fun函数运行起来答案就是不

c语言问题 fun函数功能是计算3到n之间所有素数的平方根之和,我写的fun函数运行起来答案就是不对 我哪里写错了么

第1个回答  2015-09-15
举个例子,当i=4,j=3,4%3!=0吧,那难道4就是素数了吗?
所以里面应该先设置一个变量a=1,在循环里面,如果i%j==0,那就设置a=0,break,否则继续循环,如果直到循环结束a仍然为1,那就说明是素数。
纯手打,望采纳~
第2个回答  2015-09-15
比如说5的时候,j为2 s就存一次值,j为3的时候又存一次值,肯定不对的
第3个回答  推荐于2017-09-03
应该是这样:
{
 int i,j;double s=0.0;
 for(i=3;i<=n;i+=2)
 {for(j=2;j*j<=i;j++)
    if(i%j==0)break;
  if(j*j>i)s+=sqrt(i);
 }
 return s;
}

本回答被网友采纳
第4个回答  2015-09-15
if语句后面那个s语句写错了追答

只有判断完它不是素数后才可以相加,但是你并没有判断完就相加了

c语言问题 fun函数功能是计算3到n之间所有素数的平方根之和,我写的fun...
所以里面应该先设置一个变量a=1,在循环里面,如果i%j==0,那就设置a=0,break,否则继续循环,如果直到循环结束a仍然为1,那就说明是素数。纯手打,望采纳~

c语言问题 fun函数功能是计算3到n之间所有素数的平方根之和,我写的fun...
double fun(int n){ int i,j;double s=0;for(i=3;i<=n;i++){ for(j=2;j<=i;j++)while(i%j==0);if(i==j)s=s+sqrt(i);} return s;}

...函数fun ,其功能是:计算并输出3到n之间所有素数的平方根之和。
} void fun(int n){ int i;float sum=0;for(i=3;i<=n;i++)if(prime(i)) sum=sum+sqrt(i);printf("sum=%f",sum);} 非要写成一个函数的话,可以这样:include <stdio.h> include <math.h> void fun(int n){ int i;float sum=0;for(i=3;i<=n;i++){ int f=1;{ ...

c语言,计算并输出3到n之间所有素数的平方根之和
我来解释 double fun (int n ){ int m , k, i ;double s=0.0 ;for(m=3 ; m<=n ; m++){ k=sqrt(m);\/\/如果一个数不是素数 那么他一定有一个因子是小于其平方根的。比如m不是素数 设m=i*j 假设i<j 那么 i^2<=m<=j^2 得出i<sqrt(m)<j;所以只需要比到m的...

c语言编程题 计算并输出3到n之间所有素数的平方根之和
include<stdio.h> include<math.h> int isprime(intn){for(inti=2;i*i<=n;i++)if(n%i==0)return 0;return n>1;} int main(){int n,i;double s=0;scanf("%d",&n);for(i=3;i<=n;i+=2)if(isprime(i))s+=sqrt(i);printf("%.3lf\\n",s);return 0;} 输出结果 ...

计算并输出3到n之间的所有素数的平方根之和
double fun(int n){ int m=3,i;double s=0;while(m<=n){ for(i=3;i<=sqrt(m);i=i+2)if(m%i==0)break;if(i>sqrt(m)&&m!=1)s+=sqrt(m);m+=2;} return s;} void main(){ int n;while(scanf("%d",&n)!=EOF){ if(n<3){ printf("请输入大于2的数\\n");contin...

c语言 计算并输出3~n之间所有素数的平方根的和
if(j>=i){ \/\/应该加上{} i是素数才要s+=k;k=sqrt(i);s+=k;}

C语言编程,求3到n的所有素数的平方根之和,大神看看我哪里错了
第2个for循环的作用是检测i是否能被1到i的平方根之间的整数整除,如果有1个能整除,就不是素数,所以从2开始,每一个数都需要检测,所以j每次增加1,不是增加2.第2个if条件写错了,应该是j>sqrt(i)完整fun函数代码如下,你可以参考一下。double fun(int n){int i,j;double sum=0;for(i=3...

C语言编程,求3到100之间所有素数的平方根之和
void main(){ int k = 0;double sum = 0; \/\/sum应该是double型的。。。for(k=3;k<=100;k++){ if(fun(k)==1){ sum=sqrt(k)+sum;} } printf("%f\\n",sum);}

请用C语言计算3到100之间所有素数的平方根之和?
int fun(int x)\/\/自定义素数判断函数 { if(x<2)return 0;for(int i=2;i<x;i++)if(x%i==0)return 0;return 1;} int main(){ double sum=0;for(int i=3;i<=100;i++)if(fun(i)==1)\/\/调用函数 { printf("%d ",i);\/\/输出每个素数 sum+=sqrt(i);} printf("\\n%.2f...

相似回答