改错题

给定程序M0DI1.C中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将 这两个素数通过形参指针传回主函数。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

【正确答案】

(1)    y=1;   (2)    d=a-i;
 

【答案解析】

这道题是历年的经典考题,也是验证哥德巴赫猜想的变体。原来的思路是:任意一个大于等于6的偶数 都可以分解为两个素数之和,n为大于等于6的任一偶数,可分解为n1和n2两个数,分别检査n1和n2是 否为素数,如果都是,则为一组解;如果n1不是素数,就不必再检査n2是否为素数。先从n1=3开始,检 :验n1和n2(n2=N — n1)是否为素数;然后使n1+2再检验n1、n2是否为素数,直到n1=n/2为止。