本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
代码一:
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,a,m,n,sum=0,u=0,t=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
for(a=1;a<=i;a++){
if(i%a!=0)
t++;}
if(t==i-2)
{sum=sum+i;
u++;}
t=0;}
printf("%d %d",u,sum);
return 0;
}
代码二:
#include<stdio.h>
int main()
{
int a,b,c=0,x,y,sum;
scanf("%d%d",&x,&y);
sum=0;
for(a=x;a<=y;a++)
{
for(b=2;b<=a;b++)
{
if(a%b!=0)
continue;
if(a>b)
break;
sum=sum+a;
c++;
}
}
printf("%d %d",c,sum);
return 0;
}
代码三:
#include<stdio.h>
#include<math.h>
int prime(int x);
int prime(int x){
if (x == 1)
return 0;
for (int i = 2; i <= sqrt(x); i++)
if (x%i == 0)
return 0;
return 1;
}
int main()
{
int m, n, count = 0, sum = 0, i;
scanf("%d%d", &m, &n);
for (i = m; i <= n; i++)
{
if (prime(i))
{
sum = sum + i;
count++;
}
}
printf("%d %d", count, sum);
return 0;
}