首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

对oj很无语,大神帮看吧,该怎么解决

2012-05-24 
对oj很无语,大神帮看吧Description歌德巴赫猜想,是指对于每一个大于4的偶数n,都能表示成两个质数之和。现在

对oj很无语,大神帮看吧
Description 

歌德巴赫猜想,是指对于每一个大于4的偶数n,都能表示成两个质数之和。
现在,你需要写程序验证这一猜想。对于n,找出质数a和b, 满足a+b=n, a≤b,且a*b最大。例如n=8,满足条件的a和b分别为3和5;
又如n=10,质数3、7以及5、5满足a+b=n, a≤b,而乘积大的那组是5、5。


Input 

每行一个偶数n(4 < n <= 20000) 

Output 

对应于每个输入的偶数,输出a、一个空格、b、一个换行符 

Sample Input 

8
10
1000


Sample Output 

3 5
5 5
491 509


#include "stdio.h"
#include<math.h>
int prime(int X)
{ int i; 
int flag=0;
for(i=2;i<=sqrt(X);i++)
{
if(X%i==0)
{flag=1;break;}
}
return flag;
}
int main()
{
int a,b;
int n,i;
  while(scanf("%d",&n)!=EOF)
  {
  if(prime(n/2)==0&&prime(n-n/2)==0)
  {
  a=n-n/2;
  b=n/2;
  }
  else
  {
  for(i=n/2;i<=n;i++)
  {
  if(prime(i)==0&&prime(n-i)==0)
{b=i;
  a=n-i;
break;}
  }
  }
  printf("%d %d\n",a,b);
  }
  return 0;
}

真心交到oj上不对呀。ecnu online judge。

[解决办法]
没有错呀,除了这句语句 b=i; a=n-i;改成 a=i;b=n-i; 要保证a比b 大。
[解决办法]
217376 xmuliang 2877 Yes 248K 99MS G++ 0.47K 2012-05-21 21:57:39 

楼主,结果是对的好吧,ac了!

热点排行