提交时间:2022-06-18 16:10:15

运行 ID: 41842

#include<bits/stdc++.h> using namespace std; int isPrime(int n){ if(n==0 || n==1) return 0; for(int i=2;i<=n/i;i++){ if(n%i==0) return 0; } return 1; } int change(int a,int b){ int t=abs(a-b); if(t>5) t=10-t; return t; } int changeTimes(int a,int b){ int ai[6]={0},bi[6]={0},ak=0,bk=0,ans=0; while(a) ai[++ak]=a%10,a/=10; while(b) bi[++bk]=b%10,b/=10; for(int i=1;i<=5;i++) ans+=change(ai[i],bi[i]); return ans; } int main(){ int n,mink=100,minn; cin>>n; for(int i=99997;i>=2;i--){ if(isPrime(i)){ int t=changeTimes(n,i); if(t<mink) mink=t,minn=i; } } printf("%05d",minn); return 0; }