C语言 统计素数并求和,下列代码只打印出和,但素数的个数又该如何做

#include<stdio.h>
main()
{
int m,n,i,j,k,s=0,q=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
for(j=1,k=0;j<=i;j++)
if(i%j==0)
k=k+1;
if(k==2)
s=s+i;

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

#include<stdio.h>
int main()//
{
int m,n,i,j,k,s=0,q=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
if ( i<2 )//小于2的一定不是素数
continue;
for(j=2;j<i;j++)
if(i%j==0) //该数i有因数,则不是素数
break;
if(j>=i) //0-i之间没有因数,则i是素数,计数器q+1,s+=
{
    q++;
s+=i;
}
}      
printf("%d %d\n",s, q);
return 0;//
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29
#include<stdio.h>
main()
{
int m,n,i,j,k,s=0,q=0,count=0; //定义一个变量
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
for(j=1,k=0;j<=i;j++)
if(i%j==0)
k=k+1;
if(k==2)
{
s=s+i;
count++; //统计个数
}
      
      }      
      printf("%d %d\n",s,count);
}

本回答被提问者采纳
第2个回答  2014-12-07
再添加一个变量,在if(k==2)时m++;