Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
每行包含一个正的偶数,其值不会超过10000,个数不会超过500。
Output
对应每个偶数,输出其拆成不同素数和的组数,每个结果占一行。
Sample Input
30
26
Sample Output
3
2
Source
2014暑假集训练习赛(7月30日)
AC代码:
#include<stdio.h>
#include<cmath>
#include<iostream>
using namespace std;
bool cmp(int x)
{
if(x==1)
return false;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0)
return false;
}
return true;
}
int main()
{
int n,m;
while(cin>>n)
{
int flag=0;
int sum=0;
for(int i=1;i<n;i++)
{
m=n-i;
if(cmp(m)==true&&cmp(i)==true&&m!=i)
{
flag=1;
}
if(flag==1)
{
flag=0;
sum++;
}
}
cout<<sum/2<<endl;
}
return 0;
}
至于后面为什么除以2,各位仔细思考下吧,重复。。。。。。