View Code of Problem 27

#include<stdio.h>
#include<math.h>
/*  有多组测试样例,输入直到文件末尾。*/
/*求素数之和,输出内容为a,b之间(不含a,b)所有素数的和*/ 
int main()
{
	int a,b;
	while(scanf("%d %d",&a,&b)!=EOF)//输入直到文件末尾 
	{
		if(a>b)//如果a大于b,则将a与b交换 
		{
			int temp;
			temp=a;
			a=b;
			b=temp;
		}
		int sum=0;//每次素数和都要重新计数 
		for(int i=a+1;i<b;i++)//保证输出的内容不包括a和b 
		{	int flag=0;
			int j=(int)sqrt(i);
			for(int k=2;k<=j;k++)
			{
				if(i%k==0)
				{	flag=1;//如果不是素数flag=1 
					break;//退出循环 
					
				}
			}
			if(flag==0&&i!=1)//如果是素数 
			{	
				sum+=i;//加上该素数 
			}
		}
//		if(a==0)
//		{
//			sum=sum-1;
//		}

			printf("%d\n",sum);	
	} 
	return 0;
}

Double click to view unformatted code.


Back to problem 27