使用了递归
测试点
WA了 2,4,7
#include<bits/stdc++.h>
using namespace std;
int x,y,f[1005][2],i=0;
bool pd(int n){
if(n<=1) return 0;
else{
for(int i=2;i*i<=n;++i){
if(n%i==0) return 0;
}
return 1;
}
}
void dg(int n,int x,int y){
if(x>=y){
return;
}
if(pd(x)&&pd(y)){
f[i][1]=x;
f[i][2]=y;
++i;
dg(n,x+1,y-1);
}
else{
dg(n,x+1,y-1);
}
}
int main()
{
int n;
cin>>n;
x=2,y=n-2;
dg(n,x,y);
int mn=2e9,id=-1;
for(int j=0;j<i;++j){
if(f[j][2]-f[j][1]<mn){
id=j;
mn=f[j][2]-f[j][1];
}
}
cout<<f[id][2]*f[id][1];
return 0;
}