首页 > 代码库 > 分拆素数和 HDU - 2098
分拆素数和 HDU - 2098
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。Output对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。Sample Input
30 26 0
Sample Output
3 2
一道很水的题,自己做了一下感觉步骤有点麻烦但是上网搜了一下,发现我的居然比网上有些做法简单。。。。拿出来晒一下,大神飘过~~~~
#include<iostream> #include<cstdio> #include<math.h> using namespace std; bool sub(int p); int main() { int T = 0; while (cin >> T) { if (T == 0) break; int count = 0; for (int i = 2; i < T / 2; i++) { int v1 = T - i; if (sub(v1) && sub(i)) { count++; } } cout << count << endl; } return 0; } bool sub(int p) { int i = 2; for (i = 2; i * i <= p; i++) { if (p % i == 0) { break; } } if (i * i > p) return true; else return false; }
分拆素数和 HDU - 2098
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。