分拆素数和

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

Input

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

Output

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

Sample Input

30
26
0

Sample Output

3
2

AC代码:

#include<stdio.h>

int gcd(int a,int b)

{

return b?gcd(b,a%b):a;

}

int main()

{

int c,a,b,n; scanf("%d",&n);

while(n--)

{

c=1; scanf("%d %d",&a,&b);

while(c)

{

if(gcd(a,c)==b && c!=b)

{

printf("%d\n",c); break;

}

c++;

}

}

return 0;

}

猜你喜欢

转载自blog.csdn.net/laisuwen_123/article/details/81122680