题意:
歌德巴赫猜想是正确的,所以我连找不到的情况都没输出。
思路:
觉得这数据量有点大。刚开始觉得想了一些算法时间复杂度上过不去。
无奈看discuss。发现纯暴力直接判断素数可以过。
不知道这题数据是什么思想感情。
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
#define Abs(a) ((a)>0?(a):(-(a)))
#define llong long long int
using namespace std;
const int N=10000;
const int inf=(1<<30);
int n,m;
bool IsPrime(int a)
{
for(int i=2;i<=sqrt((double)a);i++)
{
if(0==a%i)
return false;
}
return true;
}
int main()
{
int num;
while(scanf("%d",&num),num)
{
for(int i=3;i<=num/2;i+=2)
{
if(IsPrime(i)&&IsPrime(num-i))
{
printf("%d = %d + %d\n",num,i,num-i);
break;
}
}
}
return 0;
}