任何一个不小于6的偶数一定可以拆成两个质数的和。如6=3+3,8=5+3等,你的任务是将一个大于6的偶数n拆成两个最接近的质数p,q,满足p+q=n.
输入包含多组测试数据。每组数据包含1个偶数n(n在6到1000000之间包含边界)。Output
对于每组测试数据,输出两个质数p,q(p<=q)满足p+q=n。
Sample Input
6
8
10
200000
Sample Output
3 3
3 5
5 5
99871 100129
————————————————————————————————————————————————————————————————————————
#include<stdio.h>
int main()
{
int n,i;
int p,q;
while(1==scanf("%d",&n))
{
for(p=n/2; p>1; p--)
{
q=n-p;
for(i=2; i<=sqrt(n); i++)
{
if(q%i!=0)
printf("%d %d\n",p=n-q,q);
break;
}
}
}
return 0;
我打的这个程序在输入第三个数据时 会出来两种结果
答案应该只出来一种 求解决 !!!thank you !!!