提交时间:2022-06-19 18:34:43

运行 ID: 41982

#include<bits/stdc++.h> using namespace std; bool isprime(int x){ for(int i=2;i<=x/i;i++){ if(x%i==0) return 0; } return 1; } int change(int x,int y){ int t=abs(x-y); if(t>5) t=10-t; return t; } int changeTimes(int x,int y){ int i=0,xi[5]={0},yi[5]={0},sum=0; while(x){ xi[i++]=x%10; x/=10; } i=0; while(y){ yi[i++]=y%10; y/=10; } for(int i=0;i<5;i++){ sum+=change(xi[i],yi[i]); } return sum; } int main(){ int x,times=100,num; cin>>x; for(int i=99999;i>=2;i--){ if(isprime(i)){ int t=changeTimes(i,x); if(t<times){ times=t; num=i; } } } printf("%05d",num); return 0; }