提交时间:2022-06-11 17:22:14

运行 ID: 41368

#include<bits/stdc++.h> using namespace std; int ans1=100000,ans2; int zhishu(int sb){ for(int i=2;i*i<=sb;i++){ if(sb%i==0) return 0; } return 1; } int main(){ int n; int an[6],a[6]; cin>>n; an[5]=n%10; an[4]=(n%100-an[5])/10; an[3]=(n%1000-an[4]*10-an[5])/100; an[2]=(n%10000-an[3]*100-an[4]*10-an[5])/1000; an[1]=n/10000; for(int i=99999;i>=2;i--){ if(zhishu(i)){ a[5]=i%10; a[4]=(i%100-a[5])/10; a[3]=(i%1000-a[5]-a[4]*10)/100; a[2]=(i%10000-a[3]*100-a[4]*10-a[5])/1000; a[1]=i/10000; int t=0; for(int j=1;j<5;j++){ if(a[j]>an[j]){ t=t+min(a[j]-an[j],an[j]+10-a[j]); }else t=t+min(an[j]-a[j],a[j]+10-an[j]); } if(t<ans1) ans1=t,ans2=i; } } printf("%.5d",ans2); return 0; }