hdoj-2098-分拆素数和

来源:互联网 发布:类似于皮影客的软件 编辑:程序博客网 时间:2024/05/20 09:10

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

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

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

Sample Input

30
26
0

Sample Output

3
2

FAQ | About Virtual Jud
中文体面,不多解释
直接暴力过去一个个找就好了。

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int is_prime(int n)  {      int i, k = sqrt(n);      for(i = 2; i <= k; i++)      if(n % i == 0)          return 0;      return 1;  }  int main()  {      int n, i, count, j;      while(scanf("%d", &n)!=EOF)    {         if(n==0) break;         count = 0;          j = n / 2;          for(i = 3; i < j; i++)              if(is_prime(i) && is_prime(n-i))                  count++;          printf("%d\n", count);      }      return 0;  }  
0 0
原创粉丝点击