C语言求素数和

#include<stdio.h>
#include<math.h>

void main()
{
int a,b,c,d,sum;
scanf("%d",&a);
sum=0;
for(d=3;d<=a;d++)
{
b=0;
for(c=2;c<=sqrt(a);c++)
{ if(a%c==0)
{
b=1;
break;
}
}

if(b==0) sum=sum+a;

}
printf("%d",sum);
}

求高手修改下...

第1个回答  推荐于2017-11-24
#include<stdio.h>
#include<math.h>
int main()
{
int a, b, c, d, sum;
scanf("%d", &a);
sum = 0;
for(d = 3; d <= a; d++) //小于等于a的素数累加
{
for(c = 2; c <= sqrt(d); c++) //判断是否为素数
if(d% c == 0)
break;
if(c>sqrt(d)) sum = sum + d; //累加素数
}
printf("%d", sum); //输出结果,无素数则输出0
}追问

你的是对的,但我想问下我那个错在哪里?方便学习

本回答被提问者采纳
第2个回答  2017-11-29
#include "stdio.h"
void main()
{
int a,b;
int i,n;
int flag=1;
printf("请输入上限:");
scanf("%d",&a);
printf("请输入下限:");
scanf("%d",&b);

printf("%d到%d之间的素数为:",a,b);
for (i=a;i<=b;i++) {
flag=1;
for (n=2;n<i;n++) {
if (i%n==0) {
flag=0;

}
}
if ((flag==1)&&(i!=1)) {
printf("(%d)",i);
}

}

}
第3个回答  2017-12-04
#include<stdio.h>//添加此句
#include<math.h>
void main()
{
int x=100,i,a,d=999;
for(x;x<=d;x++)
{
a=sqrt(x);
for(i=2;i<=a;i++)//逗号改为分号
if(x%i==0) break;
if(i>=a)//添加此句
printf("%d ",x);
}
}

第4个回答  2012-03-25
#include<stdio.h>
void main()
{int i,j,n=0,xx[1000];
for(i=1;i<1000;i++)
{for(j=2;j<i;j++)
if(i%j==0) break;
if(j>=i) /*保证i以下的每个数都不能被i整除*/
xx[n++]=i;
}
printf("1到1000以内的所有素数如下\n");
for(i=0;i<n;i++)
printf(" %d ",xx[i]);
printf("\n 共有n=%d个素数 \n",n);
}
简单易懂
第5个回答  2018-01-06
#include "stdio.h"

int main()
{
int m,n,i;
scanf("%d", &m);
for (n = m; n > 1; n--)
{
for (i = 2; i < n; i++)
{
if (n%i == 0)    break;
}
if (i == n) break;
}
printf("The max prime number is %d.\n", n);
while (1);
}

给你一个求最大素数的代码。