提交时间:2023-05-27 14:55:06

运行 ID: 74535

#include<bits/stdc++.h> using namespace std; int num,minx=99999,maxnum; int base_diff(int x,int y){ int d=y-x; int d1=x-y; if(d<0) d+=10; if(d1<0) d1+=10; return min(d,d1); } int diff(int x,int y){ int d=0,u=x,v=y; for(int i=0;i<5;i++){ d+=base_diff(u%10,v%10); u/=10; v/=10; } return d; } int is_p(int x){ for(int i=2;i*i<=x;i++){ if(x%i==0) return 0; } return 1; } int main(){ cin>>num; for(int i=99999;i>1;i--){ if(is_p(i)){ int d=diff(num,i); if(diff(num,i)<minx){ minx=d; maxnum=i; } } } printf("%05d",maxnum); return 0; }