code for fun

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

描述

把一个偶数拆成两个不同素数的和,有几种拆法呢?

输入

输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。

输出

对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。

样例输入

30
26
0

样例输出

3
2
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<ctype.h>
 4 #include<math.h>
 5 
 6 int isprim(int n)
 7 {
 8     int i;
 9     for(i=2; i*i<=n; i++)
10     {
11         if(n%i==0)
12           return 0;
13     }
14     return 1;
15 }
16 
17 void deal(int n)
18 {
19     int i,m,s=0;
20     m=n/2;
21     for(i=3; i<m; i=i+2){
22         if(isprim(i) && isprim(n-i))
23             s++;
24     }
25     printf("%d\n",s);
26 }
27 
28 void solve()
29 {
30     int n;
31     while(scanf("%d",&n) && n){
32         deal(n);
33     }
34 }
35 
36 int main()
37 {
38     solve();
39     return 0;
40 }
 
posted on 2013-05-23 00:17  xueda120  阅读(299)  评论(0编辑  收藏  举报