Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
41982 | 陶俊宸 | 密码锁 | C++ | 通过 | 100 | 9 MS | 256 KB | 666 | 2022-06-19 18:34:43 |
#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; }