题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例:
2 4
输出样例:
15
参考答案
#include <stdio.h>
#include <math.h>
int isprime(int n)//判断素数
{
int cnt=0;
if(n<2)
return 0;
if(n==2)
return 1;
for(int i=2;i<=sqrt(n);i++)
if(n%i==0)
cnt++;
if(cnt==0)
return 1;
else
return 0;
}
int main()
{
int m,n,cnt,i,j=1;
scanf("%d%d",&n,&m);
int a[300];//定义一个数组来储存素数
for(int i=2,cnt=1;cnt<=200;i++)
if(isprime(i))
{
a[j++]=i;存放位置从1到200的素数
cnt++;
}
int sum=0;
for(i=n;i<=m;i++)
sum+=a[i];//求和
printf("%d",sum);
return 0;
}