src2020/1656_brotherthink/brotherthink.cpp

36 lines
795 B
C++

#include<iostream>
using namespace std;
int zh[10000001]={1},a[10000001][4];
bool zhi(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(){
int n,ans=0;
cin>>n;
zh[1]=2;
for(int i=3;i<=n-4;i++){
if(zhi(i)==1){
zh[++zh[0]]=i;
}
}
for(int i=1;zh[i]*3<=n;i++){
for(int j=i;zh[j]<=n-zh[i]-zh[j];j++){
int now=n-zh[i]-zh[j];
if(zhi(now)==1){
ans++;
a[ans][1]=zh[i];
a[ans][2]=zh[j];
a[ans][3]=now;
}
}
}
cout<<ans;
for(int i=1;i<=ans;i++){
cout<<endl<<n<<"="<<a[i][1]<<"+"<<a[i][2]<<"+"<<a[i][3];
}
}