提交时间:2021-05-15 17:10:24

运行 ID: 19344

#include<bits/stdc++.h> using namespace std; int x,ma=1000; int xx[10],yy[10],ans[10]; int prime(int x) { int i; if(x<2)return 0; for(i=2;i*i<=x;++i) if(x%i==0)return 0; return 1; } void check(int y) { int t=0,i,tot=0; memset(yy,0,sizeof(yy)); while(y){ yy[++t]=y%10; y/=10; } for(i=1;i<=5;++i) tot+=min(abs(yy[i]-xx[i]),abs(10+xx[i]-yy[i])); if(tot<ma){ ma=tot; for(i=1;i<=5;++i)ans[i]=yy[i]; } } int main() { int i,t=0; cin>>x; while(x){ xx[++t]=x%10; x/=10; } for(i=99999;i>=0;--i){ if(prime(i)==0)continue; check(i); } for(i=5;i>=1;--i)cout<<ans[i]; return 0; }