素数和
题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例:
2 4
输出样例:
15
时间限制:500ms内存限制:32000kb
注意:
1:while循环中,count要小于m,如果带= ,就会多循环一遍。
2:if循环中,count要>=n,第一次运行的时候,因为没有=,if循环少运行一遍,所以结果总是偏小。
3:主要思路就是,先求素数,求出后相加。
因为这个题需要多级嵌套,所以强烈建议自己写一遍。我是看了这位哥的代码理清的思路:这里
作业提交结果:
代码如下:
#include <stdio.h>
int main()
{
int n,m;
int count=0; //素数个数
int sum=0;
int a=2; //计算素数的变量
scanf("%d %d",&n,&m);
while(count<m)
{
int b=1; //判断是否为素数
for(int i=2;i<a;i++)
{
if(a%i==0)
{
b =0;
break;
}
}
if(b==1)
{
count++;
if(count>=n)
{
sum+=a;
}
} //如果是素数,就执行这个循环,加起来
a++;
}
printf("%d",sum);
return 0;
}