Gym 102055L Ultra Weak Goldbach's Conjecture (素数密度+打表/哥德巴赫猜想)

题意

给定一个 n (1<=n<=1e12),试将其分解成 6 个质数之和的形式,如果可以分解,输出任意一种,否则输出IMPOSSIBLE。

思路

模拟赛的时候想的做法好像有点…
考虑到素数的密度是 logn,因此打算先找到一个比 n 小 的素数 m,且 n-m>=11,(因为题意谈到哥德巴赫猜想,一个大于11的数字最多可以写成6个质数之和,当然5个也可以),然后找到一个质数m之后,因此只需要把 n-m 分解成5个质数即可,所以打表10 - 500 ,把他们的分解都存了… 就可以过了。

然后补题的时候看见正解好像是哥德巴赫猜想…,原来哥德巴赫猜想复杂度这么低,如果是一个奇数,那么先分成 2 2 2 3 n-3,然后哥德巴赫猜想从1开始暴力判… 如果是一个偶数 先分解成 2 2 2 2 n-8 ,一样的暴力分解 n-8。
如下图代码
Gym 102055L Ultra Weak Goldbach's Conjecture (素数密度+打表/哥德巴赫猜想)_第1张图片
很难想象这样暴力居然不T 可能这就是哥德巴赫牛逼的地方…
但其实打表还是快。。。

然后代码中一些细节就是特判掉一些小的数字。大数判素数用Miller_Rabin。
over.

代码

#include
using namespace std;
#define maxn 100005
#define maxm 1006
#define INF 0x3f3f3f3f
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,r,l) for(int i=r;i>=l;i--)
#define mem(a) memset(a,0,sizeof(a))
#define sqr(x) (x*x)
#define inf (ll)2e18+1
#define PI acos(-1)
//#define mod 1000000007
#define auto(i,x) for(int i=head[x];i;i=ed[i].nxt)
typedef long long ll;
ll read(){
    ll x=0,f=1ll;char ch=getchar();
    while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
     while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
     return f*x;
}
int T,flag,cnt,cas;
int prm[105],com[1005][6];
ll n;
const int S=8;
const int mod=1e9+7;
ll mul_mod(ll a,ll b,ll c){
    a%=c;
    b%=c;
    ll ret=0;
    ll temp=a;
    while(b){
        if(b&1){
            ret+=temp;
            if(ret>c)ret-=c;
        }
        temp<<=1;
        if(temp>c)temp-=c;
        b>>=1;
    }
    return ret;
}
ll pow_mod(ll a,ll n,ll mod){
    ll ret=1;
    ll temp=a%mod;
    while(n){
        if(n&1)ret=mul_mod(ret,temp,mod);
        temp=mul_mod(temp,temp,mod);
        n>>=1;
    }
    return ret;
}
bool check(ll a,ll n,ll x,ll t){
    ll ret=pow_mod(a,x,n);
    ll last=ret;
    for(int i=1;i<=t;++i){
        ret=mul_mod(ret,ret,n);
        if(ret==1&&last!=1&&last!=n-1)return true; // not prime
        last=ret;
    }
    if(ret!=1)return true; //prime
    else return false;  // not prime
}
bool Miller_Rabin(ll n){
    if(n<2)return false;
    if(n==2)return true;
    if((n&1)==0)return false;
    ll x=n-1;
    ll t=0;
    while((n&1)==0){x>>=1;t++;}
    srand(time(NULL));
    for(int i=0;i<S;++i){
        ll a=rand()%(n-1)+1;
        if(check(a,n,x,t))
            return false;
    }
    return true;
}
ll cha;
void init(ll x)
{
    cha=0;
    ll now=x;
    while(now>=2){
        if(Miller_Rabin(now))if(x-now>=12){
            cha=x-now;
            break;
        }
        now--;
    }
}
int main(){
    T=read();
    //printf("-----\n");
    while(T--){
        n=read();
        printf("Case %d: ",++cas);
        if(n<=11)printf("IMPOSSIBLE\n");
        else if(n==12)printf("2 2 2 2 2 2\n");
        else if(n==13)printf("2 2 2 2 2 3\n");
        else{
            init(n);
            if(cha==12)printf("2 2 2 3 3 ");
if(cha==13)printf("2 2 2 2 5 ");
if(cha==14)printf("2 2 2 3 5 ");
if(cha==15)printf("2 2 2 2 7 ");
if(cha==16)printf("2 2 2 3 7 ");
if(cha==17)printf("2 2 3 3 7 ");
if(cha==18)printf("2 2 2 5 7 ");
if(cha==19)printf("2 2 2 2 11 ");
if(cha==20)printf("2 2 2 3 11 ");
if(cha==21)printf("2 2 2 2 13 ");
if(cha==22)printf("2 2 2 3 13 ");
if(cha==23)printf("2 2 3 3 13 ");
if(cha==24)printf("2 2 2 5 13 ");
if(cha==25)printf("2 2 2 2 17 ");
if(cha==26)printf("2 2 2 3 17 ");
if(cha==27)printf("2 2 2 2 19 ");
if(cha==28)printf("2 2 2 3 19 ");
if(cha==29)printf("2 2 3 3 19 ");
if(cha==30)printf("2 2 2 5 19 ");
if(cha==31)printf("2 2 2 2 23 ");
if(cha==32)printf("2 2 2 3 23 ");
if(cha==33)printf("2 2 3 3 23 ");
if(cha==34)printf("2 2 2 5 23 ");
if(cha==35)printf("2 2 3 5 23 ");
if(cha==36)printf("2 2 2 7 23 ");
if(cha==37)printf("2 2 2 2 29 ");
if(cha==38)printf("2 2 2 3 29 ");
if(cha==39)printf("2 2 2 2 31 ");
if(cha==40)printf("2 2 2 3 31 ");
if(cha==41)printf("2 2 3 3 31 ");
if(cha==42)printf("2 2 2 5 31 ");
if(cha==43)printf("2 2 3 5 31 ");
if(cha==44)printf("2 2 2 7 31 ");
if(cha==45)printf("2 2 2 2 37 ");
if(cha==46)printf("2 2 2 3 37 ");
if(cha==47)printf("2 2 3 3 37 ");
if(cha==48)printf("2 2 2 5 37 ");
if(cha==49)printf("2 2 2 2 41 ");
if(cha==50)printf("2 2 2 3 41 ");
if(cha==51)printf("2 2 2 2 43 ");
if(cha==52)printf("2 2 2 3 43 ");
if(cha==53)printf("2 2 3 3 43 ");
if(cha==54)printf("2 2 2 5 43 ");
if(cha==55)printf("2 2 2 2 47 ");
if(cha==56)printf("2 2 2 3 47 ");
if(cha==57)printf("2 2 3 3 47 ");
if(cha==58)printf("2 2 2 5 47 ");
if(cha==59)printf("2 2 3 5 47 ");
if(cha==60)printf("2 2 2 7 47 ");
if(cha==61)printf("2 2 2 2 53 ");
if(cha==62)printf("2 2 2 3 53 ");
if(cha==63)printf("2 2 3 3 53 ");
if(cha==64)printf("2 2 2 5 53 ");
if(cha==65)printf("2 2 3 5 53 ");
if(cha==66)printf("2 2 2 7 53 ");
if(cha==67)printf("2 2 2 2 59 ");
if(cha==68)printf("2 2 2 3 59 ");
if(cha==69)printf("2 2 2 2 61 ");
if(cha==70)printf("2 2 2 3 61 ");
if(cha==71)printf("2 2 3 3 61 ");
if(cha==72)printf("2 2 2 5 61 ");
if(cha==73)printf("2 2 3 5 61 ");
if(cha==74)printf("2 2 2 7 61 ");
if(cha==75)printf("2 2 2 2 67 ");
if(cha==76)printf("2 2 2 3 67 ");
if(cha==77)printf("2 2 3 3 67 ");
if(cha==78)printf("2 2 2 5 67 ");
if(cha==79)printf("2 2 2 2 71 ");
if(cha==80)printf("2 2 2 3 71 ");
if(cha==81)printf("2 2 2 2 73 ");
if(cha==82)printf("2 2 2 3 73 ");
if(cha==83)printf("2 2 3 3 73 ");
if(cha==84)printf("2 2 2 5 73 ");
if(cha==85)printf("2 2 3 5 73 ");
if(cha==86)printf("2 2 2 7 73 ");
if(cha==87)printf("2 2 2 2 79 ");
if(cha==88)printf("2 2 2 3 79 ");
if(cha==89)printf("2 2 3 3 79 ");
if(cha==90)printf("2 2 2 5 79 ");
if(cha==91)printf("2 2 2 2 83 ");
if(cha==92)printf("2 2 2 3 83 ");
if(cha==93)printf("2 2 3 3 83 ");
if(cha==94)printf("2 2 2 5 83 ");
if(cha==95)printf("2 2 3 5 83 ");
if(cha==96)printf("2 2 2 7 83 ");
if(cha==97)printf("2 2 2 2 89 ");
if(cha==98)printf("2 2 2 3 89 ");
if(cha==99)printf("2 2 3 3 89 ");
if(cha==100)printf("2 2 2 5 89 ");
if(cha==101)printf("2 2 3 5 89 ");
if(cha==102)printf("2 2 2 7 89 ");
if(cha==103)printf("2 2 3 7 89 ");
if(cha==104)printf("2 2 2 19 79 ");
if(cha==105)printf("2 2 2 2 97 ");
if(cha==106)printf("2 2 2 3 97 ");
if(cha==107)printf("2 2 3 3 97 ");
if(cha==108)printf("2 2 2 5 97 ");
if(cha==109)printf("2 2 2 2 101 ");
if(cha==110)printf("2 2 2 3 101 ");
if(cha==111)printf("2 2 2 2 103 ");
if(cha==112)printf("2 2 2 3 103 ");
if(cha==113)printf("2 2 3 3 103 ");
if(cha==114)printf("2 2 2 5 103 ");
if(cha==115)printf("2 2 2 2 107 ");
if(cha==116)printf("2 2 2 3 107 ");
if(cha==117)printf("2 2 2 2 109 ");
if(cha==118)printf("2 2 2 3 109 ");
if(cha==119)printf("2 2 3 3 109 ");
if(cha==120)printf("2 2 2 5 109 ");
if(cha==121)printf("2 2 2 2 113 ");
if(cha==122)printf("2 2 2 3 113 ");
if(cha==123)printf("2 2 3 3 113 ");
if(cha==124)printf("2 2 2 5 113 ");
if(cha==125)printf("2 2 3 5 113 ");
if(cha==126)printf("2 2 2 7 113 ");
if(cha==127)printf("2 2 3 7 113 ");
if(cha==128)printf("2 2 2 13 109 ");
if(cha==129)printf("2 2 3 13 109 ");
if(cha==130)printf("2 2 2 11 113 ");
if(cha==131)printf("2 2 3 11 113 ");
if(cha==132)printf("2 2 2 13 113 ");
if(cha==133)printf("2 2 3 13 113 ");
if(cha==134)printf("2 2 2 19 109 ");
if(cha==135)printf("2 2 2 2 127 ");
if(cha==136)printf("2 2 2 3 127 ");
if(cha==137)printf("2 2 3 3 127 ");
if(cha==138)printf("2 2 2 5 127 ");
if(cha==139)printf("2 2 2 2 131 ");
if(cha==140)printf("2 2 2 3 131 ");
if(cha==141)printf("2 2 3 3 131 ");
if(cha==142)printf("2 2 2 5 131 ");
if(cha==143)printf("2 2 3 5 131 ");
if(cha==144)printf("2 2 2 7 131 ");
if(cha==145)printf("2 2 2 2 137 ");
if(cha==146)printf("2 2 2 3 137 ");
if(cha==147)printf("2 2 2 2 139 ");
if(cha==148)printf("2 2 2 3 139 ");
if(cha==149)printf("2 2 3 3 139 ");
if(cha==150)printf("2 2 2 5 139 ");
if(cha==151)printf("2 2 3 5 139 ");
if(cha==152)printf("2 2 2 7 139 ");
if(cha==153)printf("2 2 3 7 139 ");
if(cha==154)printf("2 2 2 11 137 ");
if(cha==155)printf("2 2 3 11 137 ");
if(cha==156)printf("2 2 2 11 139 ");
if(cha==157)printf("2 2 2 2 149 ");
if(cha==158)printf("2 2 2 3 149 ");
if(cha==159)printf("2 2 2 2 151 ");
if(cha==160)printf("2 2 2 3 151 ");
if(cha==161)printf("2 2 3 3 151 ");
if(cha==162)printf("2 2 2 5 151 ");
if(cha==163)printf("2 2 3 5 151 ");
if(cha==164)printf("2 2 2 7 151 ");
if(cha==165)printf("2 2 2 2 157 ");
if(cha==166)printf("2 2 2 3 157 ");
if(cha==167)printf("2 2 3 3 157 ");
if(cha==168)printf("2 2 2 5 157 ");
if(cha==169)printf("2 2 3 5 157 ");
if(cha==170)printf("2 2 2 7 157 ");
if(cha==171)printf("2 2 2 2 163 ");
if(cha==172)printf("2 2 2 3 163 ");
if(cha==173)printf("2 2 3 3 163 ");
if(cha==174)printf("2 2 2 5 163 ");
if(cha==175)printf("2 2 2 2 167 ");
if(cha==176)printf("2 2 2 3 167 ");
if(cha==177)printf("2 2 3 3 167 ");
if(cha==178)printf("2 2 2 5 167 ");
if(cha==179)printf("2 2 3 5 167 ");
if(cha==180)printf("2 2 2 7 167 ");
if(cha==181)printf("2 2 2 2 173 ");
if(cha==182)printf("2 2 2 3 173 ");
if(cha==183)printf("2 2 3 3 173 ");
if(cha==184)printf("2 2 2 5 173 ");
if(cha==185)printf("2 2 3 5 173 ");
if(cha==186)printf("2 2 2 7 173 ");
if(cha==187)printf("2 2 2 2 179 ");
if(cha==188)printf("2 2 2 3 179 ");
if(cha==189)printf("2 2 2 2 181 ");
if(cha==190)printf("2 2 2 3 181 ");
if(cha==191)printf("2 2 3 3 181 ");
if(cha==192)printf("2 2 2 5 181 ");
if(cha==193)printf("2 2 3 5 181 ");
if(cha==194)printf("2 2 2 7 181 ");
if(cha==195)printf("2 2 3 7 181 ");
if(cha==196)printf("2 2 2 11 179 ");
if(cha==197)printf("2 2 3 11 179 ");
if(cha==198)printf("2 2 2 11 181 ");
if(cha==199)printf("2 2 2 2 191 ");
if(cha==200)printf("2 2 2 3 191 ");
if(cha==201)printf("2 2 2 2 193 ");
if(cha==202)printf("2 2 2 3 193 ");
if(cha==203)printf("2 2 3 3 193 ");
if(cha==204)printf("2 2 2 5 193 ");
if(cha==205)printf("2 2 2 2 197 ");
if(cha==206)printf("2 2 2 3 197 ");
if(cha==207)printf("2 2 2 2 199 ");
if(cha==208)printf("2 2 2 3 199 ");
if(cha==209)printf("2 2 3 3 199 ");
if(cha==210)printf("2 2 2 5 199 ");
if(cha==211)printf("2 2 3 5 199 ");
if(cha==212)printf("2 2 2 7 199 ");
if(cha==213)printf("2 2 3 7 199 ");
if(cha==214)printf("2 2 2 11 197 ");
if(cha==215)printf("2 2 3 11 197 ");
if(cha==216)printf("2 2 2 11 199 ");
if(cha==217)printf("2 2 3 11 199 ");
if(cha==218)printf("2 2 2 13 199 ");
if(cha==219)printf("2 2 3 13 199 ");
if(cha==220)printf("2 2 2 17 197 ");
if(cha==221)printf("2 2 3 17 197 ");
if(cha==222)printf("2 2 2 17 199 ");
if(cha==223)printf("2 2 3 17 199 ");
if(cha==224)printf("2 2 2 19 199 ");
if(cha==225)printf("2 2 3 19 199 ");
if(cha==226)printf("2 2 2 23 197 ");
if(cha==227)printf("2 2 3 23 197 ");
if(cha==228)printf("2 2 2 23 199 ");
if(cha==229)printf("2 2 3 23 199 ");
if(cha==230)printf("2 2 2 31 193 ");
if(cha==231)printf("2 2 3 31 193 ");
if(cha==232)printf("2 2 2 29 197 ");
if(cha==233)printf("2 2 3 29 197 ");
if(cha==234)printf("2 2 2 29 199 ");
if(cha==235)printf("2 2 3 29 199 ");
if(cha==236)printf("2 2 2 31 199 ");
if(cha==237)printf("2 2 3 31 199 ");
if(cha==238)printf("2 2 2 41 191 ");
if(cha==239)printf("2 2 3 41 191 ");
if(cha==240)printf("2 2 2 37 197 ");
if(cha==241)printf("2 2 3 37 197 ");
if(cha==242)printf("2 2 2 37 199 ");
if(cha==243)printf("2 2 3 37 199 ");
if(cha==244)printf("2 2 2 41 197 ");
if(cha==245)printf("2 2 3 41 197 ");
if(cha==246)printf("2 2 2 41 199 ");
if(cha==247)printf("2 2 3 41 199 ");
if(cha==248)printf("2 2 2 43 199 ");
if(cha==249)printf("2 2 3 43 199 ");
if(cha==250)printf("2 2 2 47 197 ");
if(cha==251)printf("2 2 3 47 197 ");
if(cha==252)printf("2 2 2 47 199 ");
if(cha==253)printf("2 2 3 47 199 ");
if(cha==254)printf("2 2 2 67 181 ");
if(cha==255)printf("2 2 3 67 181 ");
if(cha==256)printf("2 2 2 53 197 ");
if(cha==257)printf("2 2 3 53 197 ");
if(cha==258)printf("2 2 2 53 199 ");
if(cha==259)printf("2 2 3 53 199 ");
if(cha==260)printf("2 2 2 61 193 ");
if(cha==261)printf("2 2 3 61 193 ");
if(cha==262)printf("2 2 2 59 197 ");
if(cha==263)printf("2 2 3 59 197 ");
if(cha==264)printf("2 2 2 59 199 ");
if(cha==265)printf("2 2 3 59 199 ");
if(cha==266)printf("2 2 2 61 199 ");
if(cha==267)printf("2 2 3 61 199 ");
if(cha==268)printf("2 2 2 71 191 ");
if(cha==269)printf("2 2 3 71 191 ");
if(cha==270)printf("2 2 2 67 197 ");
if(cha==271)printf("2 2 3 67 197 ");
if(cha==272)printf("2 2 2 67 199 ");
if(cha==273)printf("2 2 3 67 199 ");
if(cha==274)printf("2 2 2 71 197 ");
if(cha==275)printf("2 2 3 71 197 ");
if(cha==276)printf("2 2 2 71 199 ");
if(cha==277)printf("2 2 3 71 199 ");
if(cha==278)printf("2 2 2 73 199 ");
if(cha==279)printf("2 2 3 73 199 ");
if(cha==280)printf("2 2 2 83 191 ");
if(cha==281)printf("2 2 3 83 191 ");
if(cha==282)printf("2 2 2 79 197 ");
if(cha==283)printf("2 2 3 79 197 ");
if(cha==284)printf("2 2 2 79 199 ");
if(cha==285)printf("2 2 3 79 199 ");
if(cha==286)printf("2 2 2 83 197 ");
if(cha==287)printf("2 2 3 83 197 ");
if(cha==288)printf("2 2 2 83 199 ");
if(cha==289)printf("2 2 3 83 199 ");
if(cha==290)printf("2 2 2 103 181 ");
if(cha==291)printf("2 2 3 103 181 ");
if(cha==292)printf("2 2 2 89 197 ");
if(cha==293)printf("2 2 3 89 197 ");
if(cha==294)printf("2 2 2 89 199 ");
if(cha==295)printf("2 2 3 89 199 ");
if(cha==296)printf("2 2 2 97 193 ");
if(cha==297)printf("2 2 3 97 193 ");
if(cha==298)printf("2 2 2 101 191 ");
if(cha==299)printf("2 2 3 101 191 ");
if(cha==300)printf("2 2 2 97 197 ");
if(cha==301)printf("2 2 3 97 197 ");
if(cha==302)printf("2 2 2 97 199 ");
if(cha==303)printf("2 2 3 97 199 ");
if(cha==304)printf("2 2 2 101 197 ");
if(cha==305)printf("2 2 3 101 197 ");
if(cha==306)printf("2 2 2 101 199 ");
if(cha==307)printf("2 2 3 101 199 ");
if(cha==308)printf("2 2 2 103 199 ");
if(cha==309)printf("2 2 3 103 199 ");
if(cha==310)printf("2 2 2 107 197 ");
if(cha==311)printf("2 2 3 107 197 ");
if(cha==312)printf("2 2 2 107 199 ");
if(cha==313)printf("2 2 3 107 199 ");
if(cha==314)printf("2 2 2 109 199 ");
if(cha==315)printf("2 2 3 109 199 ");
if(cha==316)printf("2 2 2 113 197 ");
if(cha==317)printf("2 2 3 113 197 ");
if(cha==318)printf("2 2 2 113 199 ");
if(cha==319)printf("2 2 3 113 199 ");
if(cha==320)printf("2 2 2 151 163 ");
if(cha==321)printf("2 2 3 151 163 ");
if(cha==322)printf("2 2 2 137 179 ");
if(cha==323)printf("2 2 3 137 179 ");
if(cha==324)printf("2 2 2 127 191 ");
if(cha==325)printf("2 2 3 127 191 ");
if(cha==326)printf("2 2 2 127 193 ");
if(cha==327)printf("2 2 3 127 193 ");
if(cha==328)printf("2 2 2 131 191 ");
if(cha==329)printf("2 2 3 131 191 ");
if(cha==330)printf("2 2 2 127 197 ");
if(cha==331)printf("2 2 3 127 197 ");
if(cha==332)printf("2 2 2 127 199 ");
if(cha==333)printf("2 2 3 127 199 ");
if(cha==334)printf("2 2 2 131 197 ");
if(cha==335)printf("2 2 3 131 197 ");
if(cha==336)printf("2 2 2 131 199 ");
if(cha==337)printf("2 2 3 131 199 ");
if(cha==338)printf("2 2 2 139 193 ");
if(cha==339)printf("2 2 3 139 193 ");
if(cha==340)printf("2 2 2 137 197 ");
if(cha==341)printf("2 2 3 137 197 ");
if(cha==342)printf("2 2 2 137 199 ");
if(cha==343)printf("2 2 3 137 199 ");
if(cha==344)printf("2 2 2 139 199 ");
if(cha==345)printf("2 2 3 139 199 ");
if(cha==346)printf("2 2 2 149 191 ");
if(cha==347)printf("2 2 3 149 191 ");
if(cha==348)printf("2 2 2 149 193 ");
if(cha==349)printf("2 2 3 149 193 ");
if(cha==350)printf("2 2 2 151 193 ");
if(cha==351)printf("2 2 3 151 193 ");
if(cha==352)printf("2 2 2 149 197 ");
if(cha==353)printf("2 2 3 149 197 ");
if(cha==354)printf("2 2 2 149 199 ");
if(cha==355)printf("2 2 3 149 199 ");
if(cha==356)printf("2 2 2 151 199 ");
if(cha==357)printf("2 2 3 151 199 ");
if(cha==358)printf("2 2 2 173 179 ");
if(cha==359)printf("2 2 3 173 179 ");
if(cha==360)printf("2 2 2 157 197 ");
if(cha==361)printf("2 2 3 157 197 ");
if(cha==362)printf("2 2 2 157 199 ");
if(cha==363)printf("2 2 3 157 199 ");
if(cha==364)printf("2 2 2 167 191 ");
if(cha==365)printf("2 2 3 167 191 ");
if(cha==366)printf("2 2 2 163 197 ");
if(cha==367)printf("2 2 3 163 197 ");
if(cha==368)printf("2 2 2 163 199 ");
if(cha==369)printf("2 2 3 163 199 ");
if(cha==370)printf("2 2 2 167 197 ");
if(cha==371)printf("2 2 3 167 197 ");
if(cha==372)printf("2 2 2 167 199 ");
if(cha==373)printf("2 2 3 167 199 ");
if(cha==374)printf("2 3 3 167 199 ");
if(cha==375)printf("2 2 5 167 199 ");
if(cha==376)printf("2 2 2 173 197 ");
if(cha==377)printf("2 2 3 173 197 ");
if(cha==378)printf("2 2 2 173 199 ");
if(cha==379)printf("2 2 3 173 199 ");
if(cha==380)printf("2 2 2 181 193 ");
if(cha==381)printf("2 2 3 181 193 ");
if(cha==382)printf("2 2 2 179 197 ");
if(cha==383)printf("2 2 3 179 197 ");
if(cha==384)printf("2 2 2 179 199 ");
if(cha==385)printf("2 2 3 179 199 ");
if(cha==386)printf("2 2 2 181 199 ");
if(cha==387)printf("2 2 3 181 199 ");
if(cha==388)printf("2 2 2 191 191 ");
if(cha==389)printf("2 2 3 191 191 ");
if(cha==390)printf("2 2 2 191 193 ");
if(cha==391)printf("2 2 3 191 193 ");
if(cha==392)printf("2 2 2 193 193 ");
if(cha==393)printf("2 2 3 193 193 ");
if(cha==394)printf("2 2 2 191 197 ");
if(cha==395)printf("2 2 3 191 197 ");
if(cha==396)printf("2 2 2 191 199 ");
if(cha==397)printf("2 2 3 191 199 ");
if(cha==398)printf("2 2 2 193 199 ");
if(cha==399)printf("2 2 3 193 199 ");
if(cha==400)printf("2 2 2 197 197 ");
if(cha==401)printf("2 2 3 197 197 ");
if(cha==402)printf("2 2 2 197 199 ");
if(cha==403)printf("2 2 3 197 199 ");
if(cha==404)printf("2 2 2 199 199 ");
if(cha==405)printf("2 2 3 199 199 ");
if(cha==406)printf("2 3 3 199 199 ");
if(cha==407)printf("2 2 5 199 199 ");
if(cha==408)printf("2 3 5 199 199 ");
if(cha==409)printf("2 2 7 199 199 ");
if(cha==410)printf("2 3 7 199 199 ");
if(cha==411)printf("2 2 11 197 199 ");
if(cha==412)printf("2 3 11 197 199 ");
if(cha==413)printf("2 2 11 199 199 ");
if(cha==414)printf("2 3 11 199 199 ");
if(cha==415)printf("2 2 13 199 199 ");
if(cha==416)printf("2 3 13 199 199 ");
if(cha==417)printf("2 2 17 197 199 ");
if(cha==418)printf("2 3 17 197 199 ");
if(cha==419)printf("2 2 17 199 199 ");
if(cha==420)printf("2 3 17 199 199 ");
if(cha==421)printf("2 2 19 199 199 ");
if(cha==422)printf("2 3 19 199 199 ");
if(cha==423)printf("2 2 23 197 199 ");
if(cha==424)printf("2 3 23 197 199 ");
if(cha==425)printf("2 2 23 199 199 ");
if(cha==426)printf("2 3 23 199 199 ");
if(cha==427)printf("2 2 29 197 197 ");
if(cha==428)printf("2 3 29 197 197 ");
if(cha==429)printf("2 2 29 197 199 ");
if(cha==430)printf("2 3 29 197 199 ");
if(cha==431)printf("2 2 29 199 199 ");
if(cha==432)printf("2 3 29 199 199 ");
if(cha==433)printf("2 2 31 199 199 ");
if(cha==434)printf("2 3 31 199 199 ");
if(cha==435)printf("2 2 37 197 197 ");
if(cha==436)printf("2 3 37 197 197 ");
if(cha==437)printf("2 2 37 197 199 ");
if(cha==438)printf("2 3 37 197 199 ");
if(cha==439)printf("2 2 37 199 199 ");
if(cha==440)printf("2 3 37 199 199 ");
if(cha==441)printf("2 2 41 197 199 ");
if(cha==442)printf("2 3 41 197 199 ");
if(cha==443)printf("2 2 41 199 199 ");
if(cha==444)printf("2 3 41 199 199 ");
if(cha==445)printf("2 2 43 199 199 ");
if(cha==446)printf("2 3 43 199 199 ");
if(cha==447)printf("2 2 47 197 199 ");
if(cha==448)printf("2 3 47 197 199 ");
if(cha==449)printf("2 2 47 199 199 ");
if(cha==450)printf("2 3 47 199 199 ");
if(cha==451)printf("2 2 53 197 197 ");
if(cha==452)printf("2 3 53 197 197 ");
if(cha==453)printf("2 2 53 197 199 ");
if(cha==454)printf("2 3 53 197 199 ");
if(cha==455)printf("2 2 53 199 199 ");
if(cha==456)printf("2 3 53 199 199 ");
if(cha==457)printf("2 2 59 197 197 ");
if(cha==458)printf("2 3 59 197 197 ");
if(cha==459)printf("2 2 59 197 199 ");
if(cha==460)printf("2 3 59 197 199 ");
if(cha==461)printf("2 2 59 199 199 ");
if(cha==462)printf("2 3 59 199 199 ");
if(cha==463)printf("2 2 61 199 199 ");
if(cha==464)printf("2 3 61 199 199 ");
if(cha==465)printf("2 2 67 197 197 ");
if(cha==466)printf("2 3 67 197 197 ");
if(cha==467)printf("2 2 67 197 199 ");
if(cha==468)printf("2 3 67 197 199 ");
if(cha==469)printf("2 2 67 199 199 ");
if(cha==470)printf("2 3 67 199 199 ");
if(cha==471)printf("2 2 71 197 199 ");
if(cha==472)printf("2 3 71 197 199 ");
if(cha==473)printf("2 2 71 199 199 ");
if(cha==474)printf("2 3 71 199 199 ");
if(cha==475)printf("2 2 73 199 199 ");
if(cha==476)printf("2 3 73 199 199 ");
if(cha==477)printf("2 2 79 197 197 ");
if(cha==478)printf("2 3 79 197 197 ");
if(cha==479)printf("2 2 79 197 199 ");
if(cha==480)printf("2 3 79 197 199 ");
if(cha==481)printf("2 2 79 199 199 ");
if(cha==482)printf("2 3 79 199 199 ");
if(cha==483)printf("2 2 83 197 199 ");
if(cha==484)printf("2 3 83 197 199 ");
if(cha==485)printf("2 2 83 199 199 ");
if(cha==486)printf("2 3 83 199 199 ");
if(cha==487)printf("2 2 89 197 197 ");
if(cha==488)printf("2 3 89 197 197 ");
if(cha==489)printf("2 2 89 197 199 ");
if(cha==490)printf("2 3 89 197 199 ");
if(cha==491)printf("2 2 89 199 199 ");
if(cha==492)printf("2 3 89 199 199 ");
if(cha==493)printf("2 2 97 193 199 ");
if(cha==494)printf("2 3 97 193 199 ");
if(cha==495)printf("2 2 97 197 197 ");
if(cha==496)printf("2 3 97 197 197 ");
if(cha==497)printf("2 2 97 197 199 ");
if(cha==498)printf("2 3 97 197 199 ");
if(cha==499)printf("2 2 97 199 199 ");
if(cha==500)printf("2 3 97 199 199 ");
            printf("%lld\n",n-cha);
        }
    }
    return 0;
}

你可能感兴趣的:(数论-哥德巴赫猜想)