天天看点

C语言入门-MOOC-作业-素数和

素数和

题目内容:

我们认为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:主要思路就是,先求素数,求出后相加。

因为这个题需要多级嵌套,所以强烈建议自己写一遍。我是看了这位哥的代码理清的思路:这里

作业提交结果:

C语言入门-MOOC-作业-素数和

代码如下:

#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;
}
           

继续阅读