Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
74536 | 王籽易 | 密码锁 | C++ | 通过 | 100 | 18 MS | 292 KB | 1143 | 2023-05-27 14:55:11 |
#include <bits/stdc++.h> using namespace std; int a[6],a2[6],q,b[9999],k=0; int check(int i){ if(i==1||i==2||i==0){ return 0; } for(int j=2;j<=i/j;j++){ if(i%j==0){ return 0; } } return 1; } int f2(int n,int m){ return min(abs(m-n),10-abs(m-n)); } int f(int a[],int b1[]){ int sum=0; for(int i=1;i<=5;i++){ sum+=f2(a[i],b1[i]); } return sum; } int minshuzu(int st[],int l){ int minst=99999; for(int i=1;i<=l;i++){ minst=min(st[i],minst); } return minst; } int main(){ cin>>q; a2[1]=q/10000; a2[2]=q/1000%10; a2[3]=q/100%10; a2[4]=q/10%10; a2[5]=q%10; for(int i=99999;i>=1;i--){ if(check(i)){ a[1]=i/10000; a[2]=i/1000%10; a[3]=i/100%10; a[4]=i/10%10; a[5]=i%10; int sum=f(a2,a); k++; b[k]=sum; } } int l=k; int minb=minshuzu(b,l); for(int i=99999;i>=1;i--){ if(check(i)){ a[1]=i/10000; a[2]=i/1000%10; a[3]=i/100%10; a[4]=i/10%10; a[5]=i%10; int sum=f(a2,a); if(sum==minb){ for(int i=1;i<=5;i++){ cout<<a[i]; } return 0; } } } return 0; }