分拆素数和 HDU - 2098

时间:2021-12-05 22:55:03
把一个偶数拆成两个不同素数的和,有几种拆法呢?

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 = ;
while (cin >> T)
{
if (T == )
break;
int count = ;
for (int i = ; i < T / ; i++)
{
int v1 = T - i;
if (sub(v1) && sub(i))
{
count++;
}
}
cout << count << endl;
}
return ;
}
bool sub(int p)
{
int i = ;
for (i = ; i * i <= p; i++)
{
if (p % i == )
{
break;
}
}
if (i * i > p)
return true;
else
return false;
}