本文主要是介绍C/C++程序训练6---歌德巴赫猜想的证明 (sdut oj),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C/C++程序训练6---歌德巴赫猜想的证明
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
验证“每个不小于6的偶数都是两个素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。
Input
输入一个不小于6的偶数n。
Output
找出两个素数,使它们的和为n。只需要输出其中第一个素数最小的一组数据即可。
Example Input
80
Example Output
80=7+73
Hint
Author
参考代码
#include<stdio.h>
int h(int n)
{int i;if(n < 2){return 0;}else if(n == 2){return 1;}else{for(i = 2; i < n; i++){if(n % i == 0)break;}if(i == n){return 1;}else{return 0;}}
}
int f(int n)
{int i;int flag;for(i = 2; i < n; i++){flag = h(i);if(flag){flag = h(n-i);if(flag){return i;break;}}}
}
int main()
{int n;int a,b;int i;scanf("%d",&n);a = f(n);b = n - a;printf("%d=%d+%d",n,a,b);return 0;
}
这篇关于C/C++程序训练6---歌德巴赫猜想的证明 (sdut oj)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!