hdu 2098 分拆素数和

题解:

  该题主要是理解题意,将一个偶数拆分成两个不同素数的

代码如下:

#include <stdio.h>
#include <math.h>

int IsPrime(int n)
{
    int i;
    for (i=2; i<=sqrt(n); i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

int main()
{
    int n, i, cnt;
    while (scanf("%d", &n) && n)
    {
        cnt = 0;
        for (i=3; i<n/2; i+=2)
        {//因为是不同的两个素数,那必定一个比n/2大,一个比n/2小
            if (IsPrime(i) && IsPrime(n-i))
                cnt++;
        }
        printf("%d\n", cnt);
    }
    return 0;
}

 

 

posted on 2013-01-25 14:48  zm001  阅读(1190)  评论(0编辑  收藏  举报