哥德巴赫猜想(C++)

哥德巴赫猜想

描述  伟大的哥德巴赫猜想是:任何一个大于6的偶数总可以分解为两个素数之和。现在,请你 编程验证哥德巴赫猜想,即输人一个大于6的偶数n,将其分解为两个素数之和输出。如果有多种分解答案,请输出字典序最小的那一个

输入  一行一个正整数n,n<=1000。

输出  一行一个表达式,表示字典序最小的一种分解方法,具体格式参见样例。

输入样例 1 

6

输出样例 1

6 = 3 + 3

提示

素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

字典序:

在数学中,字典或词典顺序(也称为词汇顺序,字典顺序,字母顺序或词典顺序)是基于字母顺序排列的单词按字母顺序排列的方法。 这种泛化主要在于定义有序完全有序集合(通常称为字母表)的元素的序列(通常称为计算机科学中的单词)的总顺序。

对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字的排列 12354和12345,排列12345在前,排列12354在后。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 54321。

下面这个代码,只要题目一样的话,百分百正确

#include<iostream>
#include<cmath>
using namespace std;
int f(int n){
	bool flag=1;
	for(int i=2;i<=sqrt(n);i++){
		if(n%i==0){
			flag=0;
			break;
		}
	} 
	return flag;
} 
int main(){
	int n;
	cin>>n;
	for(int i=2;i<=n/2;i++){
		if(f(i)==1 && f(n-i)==1){
			cout<<n<<" = "<<i<<" + "<<n-i;
			break;
		}
	}
	return 0;
}

 答案正确