1. 程式人生 > 其它 >洛谷 P1304 哥德巴赫猜想 題解C/C++

洛谷 P1304 哥德巴赫猜想 題解C/C++

技術標籤:洛谷c++c語言演算法

//P1304 哥德巴赫猜想
//#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <cctype>
#include <sstream>
#define inf 0x3f3f3f3f
#define eps 1e-6
using namespace std;
#define clr(x) memset(x,0,sizeof((x))) const int maxn = 1e5+1;//2e6+1 #define MAX(a,b,c) ((a)>(b)?((a)>(c)?(a):(c)):((b)>(c)?(b):(c))) #define _max(a,b) ((a) > (b) ? (a) : (b)) #define _min(a,b) ((a) < (b) ? (a) : (b)) #define _for(a,b,c) for(int a = b;a<c;a++) int is_prime(int x) {//判斷質數
if(x<=1)return 0; if(x==2||x==3)return 1; if(x%6!=1 && x%6!=5)return 0; for(int i =5;i*i<=x;i+=6) { if(x%i==0||x%(i+2)==0)return 0; } return 1; } int main() { #ifdef LOCAL freopen("data.in","r",stdin); freopen("data.out","w",stdout); #endif
int n; cin>>n; for(int i = 4;i<=n;i+=2) { for(int j = 2;j<i;j++) { if(is_prime(j)&&is_prime(i-j)) { printf("%d=%d+%d\n",i,j,i-j); break; } } } return 0; }