C语言编程求100—1000内的素数个数及和?

如题所述

第1个回答  2019-11-02
给你一个超简洁的代码吧:
#include<stdio.h>
#include<math.h>
void
main(){
int
i,k,count=0;
/*count用于统计素数个数*/
long
sum=0;
/*sum存储素数累加和,由于其和超过2^15-1,所以必须用长整形*/
for(i=100;i<=1000;i++){
for(k=2;k<=sqrt(i)
&&
i%k!=0;k++);
/*
这一步是超简结写法,直接将if判断写入for判断语句中*/
if(k>sqrt(i)){
/*如果k>sqrt(i),说明上面的循环条件都不满足,故i的值就是一个素数*/
count++;
sum+=i;
}
}
printf("100~1000之间共有
%d
个素数\n它们的和是:%
ld
",count,sum);
}
相似回答