c语言求1000以内的素数和
#include stdio.h
#define N 1000
int main(int argc, char *argv[])
{
int i,j,sum,flage;
for(i=2;iN;i++n)
{
flage=0;
for(j=1;j=iflage=2;j++)
if(i%j==0)flage++;
if(flage==2)sum+=i;
}
printf(“1000以内的素数和为:%d\n”,sum);
return 0;
}
c语言:求1000以内的素数并求出其中最大十个素数之和
通过您的程序可以看出,您想通过一维数组,来计算最大10个素数之和。但是您并没有将前10位素数赋值给一维数组,所以无法得出正确结果。
我根据您的题目要求,编写代码如下:
/*输出1至1000之间的素数,并求出其中最大十个素数之和……by Mr.Kong*/
#includestdio.h
int isprime(int a);
main()
{
int i,s=0,n;
for(i=1000;i=2;i–) /*将素数倒序输出,方便计算前10位素数*/
if(isprime(i))
{
n++;
printf(“%d,”,i);
if(n=10) /*计算前10位素数的和*/
s+=i;
}
printf(“\n最大十个素数之和s=%d”,s);
}
int isprime(int a) /*定义函数,判断是否是素数*/
{
int i;
for (i=2;ia;i++)
if (a%i==0)
return 0;
return 1;
}
C语言编程求100—1000内的素数个数及和?
给你一个超简洁的代码吧: #includestdio.h
#includemath.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(ksqrt(i)){ /*如果ksqrt(i),说明上面的循环条件都不满足,故i的值就是一个素数*/
count++;
sum+=i;
}
} printf(“100~1000之间共有 %d 个素数\n它们的和是:%ld”,count,sum);}
C语言,求1000以内素数的和!
#include stdio.h
void main()
{
int n,s=0,sum=0,flag=1,x;//flag没有初始值
for(n=2;n=1000;n++)
{
for(x=2;x=n-1;x++)
{ //最好用括号括起来
if(n%x==0)
{
flag=0;
break; //能整除就可以中止内层循环了
}
else
flag=1;
}//最好用括号括起来
if(flag==1)//这儿是判断==,不是赋值
{
s++;
sum=sum+n;
}
}
printf(“sum=%d\ns=%d\n”,sum,s);
}