UVA 686

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=627

所有大于4的偶数都是两个素数之和,依次判断这样不重复的素数对,并输出

View Code
 1 #include<stdio.h>
 2 #include<math.h>
 3 int yanzheng(int a)//这个函数判断a是否为素数
 4 {
 5  int i,flag=0;
 6  for(i=2;i<=sqrt(a);i++)
 7    { if(a%i==0)
 8       {
 9        flag=1;
10        break;
11       }
12    }
13  if(flag)
14    return 0;
15  else return 1;
16 }
17 int main()
18 {
19  int n,j,js,i;
20  while(scanf("%d",&n)&&n)
21       {
22        js=0;
23        for(i=2;i<=n/2;i++)
24           {
25            if(i!=2&&i%2==0)
26               continue;//除2以外的偶数直接跳过
27            if(yanzheng(i))
28              {
29               j=n-i;
30               if(yanzheng(j))
31                  js++;//如果相加的两个数都为素数,则计数加一
32              }
33            }
34        printf("%d\n",js);  
35       }
36  return 0;
37 }

 

posted @ 2013-02-18 16:03  执着追求的IT小小鸟  阅读(181)  评论(0)    收藏  举报