Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
74571 | 陈路垚 | 密码锁 | C++ | 通过 | 100 | 10 MS | 252 KB | 612 | 2023-05-27 16:31:37 |
#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; }