题目内容:
我们认为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>
int main()
{
int x,num=1,n,m,sum1=0,sum2=0,i,temp;
scanf_s("%d %d",&n,&m);
if(n!=1)
{
sum1=2;
for(x=3;num<n-1;++x)
{
temp=1;
for(i=2;i<x;++i)
{
if(x%i==0)
{
temp=0;
break;
}
else if(x%i!=0&&i==x-1)
{
num++;
}
}
if(temp==1)
{
sum1+=x;
}
}
}//此时的sum1表示前n项素数的和(不包括第n项)
else
{
sum1=0;
}
num=1;
if(m!=1)
{
sum2=2;
for(x=3;num<m;++x)
{
temp=1;
for(i=2;i<x;++i)
{
if(x%i==0)
{
temp=0;
break;
}
else if(x%i!=0&&i==x-1)
{
num++;
}
}
if(temp==1)
{
sum2+=x;
}
}
}//此时的sum2表示前m项素数的和(包括第m项)
else
{
sum2=2;
}
if(m==n)
{
printf("%d\n",sum2);
}
else
{
printf("%d\n",sum2-sum1);
}
return 0;
}