函数质数的平方和C语言,c语言平方跟函数

c语言编程,求3到100之间所有素数的平方根之和

#include stdio.h

创新互联公司专注于平顺企业网站建设,自适应网站建设,商城网站建设。平顺网站建设公司,为平顺等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

#include math.h

int isprime(int n) {

int i;

if (n==2 || n==3) return 1;

if (n%2==0) return 0;

for (i=3;i=sqrt(n);i+=2) {

if (n%i==0) return 0;

}

return 1;

}

int main() {

double sum = 0.0;

int i;

for (i=3;i=100;i++) {

if (isprime(i)) {

sum += sqrt(i);

}

}

printf("3-100,素数平方根之和:%f\n", sum);

return 0;

}

C语言编程,求3到n的所有素数的平方根之和,大神看看我哪里错了

你的第2个for循环的自增写错了。应该自增1,即j++。j初始值应该是2.

第2个for循环的作用是检测i是否能被1到i的平方根之间的整数整除,如果有1个能整除,就不是素数,所以从2开始,每一个数都需要检测,所以j每次增加1,不是增加2.

第2个if条件写错了,应该是jsqrt(i)

完整fun函数代码如下,你可以参考一下。

double fun(int n){

int i,j;

double sum=0;

for(i=3;i=n;i++){

for(j=2;j=sqrt(i);j++){

if(i%j==0){

break;

}

}

if(jsqrt(i)){

sum+=sqrt(i);

}

}

return sum;

}

C语言用函数求质数和

#include stdio.h

#include stdlib.h

#include math.h

int isprime(int m) {

int squareRoot = (int)sqrt(m);

if (m = 1)

return 0;

for (int i = 2; i = squareRoot; i++) {

if (m % i == 0) {

return 0;

}

}

return 1;

}

long sumofprime(int n) {

long int sum = 0;

for (int i = 0; i n; i++) {

if (isprime(i)) {

sum += i;

}

}

return sum;

}

void output(long int n) {

printf("%ld", n);

}

int main() {

long int n = 0;

printf("输入范围:");

scanf("%ld", n);

n = sumofprime(n);

output(n);

system("PAUSE");

return 0;

}

这么写就对了!!!

c语言编程题 计算并输出3到n之间所有素数的平方根之和

#includestdio.h

#includemath.h

int isprime(intn)

{for(inti=2;i*i=n;i++)

if(n%i==0)return 0;

return n1;

}

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间所有素数的平方根之和

#includemath.h

#includestdio.h

doubl efun(intn)

{

doubles=0.0;

inti,j,flag=1;

for(i=3;i=n;i++)

{

for(j=2;ji;j++)

{

if((i%j==0)(j=(i+1)))

{

flag=0;

break;

}

}

if(flag==1)

s+=sqrt(i);

}

returns;

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 假设ij 那么 i^2=m=j^2

得出isqrt(m)j;所以只需要比到m的平方根就可以了

for(i=2;i=k;i++)

if (m%i == 0) break;

if (i=k+1)//这里其实改为ik就可以了 因为已经判断他没有小于k的因子了 而除数又同时大于k

那么就能判定这个数就是素数

s+=sqrt(m);

}

return s;

第二个是错误的 你自己运行看看就知道了


网站题目:函数质数的平方和C语言,c语言平方跟函数
分享网址:http://myzitong.com/article/hsdjgs.html