トピックへのリンク:https://www.luogu.org/problem/P1579
任意の奇数より大きい9は、三個の素数の和として表すことができます。彼は奇数であるので、彼がでなければなりません
図1に示すように、2つの偶数、奇数+。
2、3奇数
両者の偶数、および2つだけの条件が満たされ、彼のみ2,2&、N-4、N-4は長い素数を分析OKを満たします。
か否かを条件NIJを決定し、次に何を、I = 3の開始から、iがjで見つけた後、最初からJ Iを発見した後、及び決定するための2つの奇数サイクルの
参照のための次のコード:
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 のconst int型 MAXN = 1001 。 4 INT isprime(INT K) 5 { 6 のための(int型 I = 2 ; iは=のSQRT(K)<; iは++ ) 7 { 8 もし(K%とI == 0 ) 9 戻り 0 ; 10 } 11 リターン 1 。 12 } 13 int型のmain(){ 14 int型のn; 15 CIN >> N。 16 であれば(isprime(N- 4 )) 17 { 18 COUT << 2 << ' ' << 2 << ' ' << N- 4 << ENDL。 19 } 20 他の 21 { 22 のための(int型 I = 3 ; iがN <; Iは++ ) 23 { 24 であれば(I%2!= 0 && isprime(I)) 25 { 26 のための(int型 J = I; J <N; J ++ ) 27 { 28 であれば(J%2!= 0 && isprime(J)) 29 { 30 であれば((NIJ)%2!= 0 && isprime(NIJ )) 31 { 32 COUT << I << ' ' << J << ' ' << NIJ << ENDL。 33 リターン 0 ; } 36 } 37 } 38 } 39 } 40 リターン 0。