Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
41205 ‬朱宸瑜 密码锁 C++ 通过 100 10 MS 256 KB 866 2022-06-11 15:11:25

Tests(5/5):


#include<iostream> using namespace std; int kk,i,small=100000,ans; int k[5],snums[99999]; bool is_s(int num){ if(num==0||num==1) return 0; for(int i=2;i<=num/i;i++){ if(num%i==0) return 0; } return 1; } int abs(int num1,int num2){ int a=num1+10-num2; int b=num2+10-num1; int c=num1-num2; int d=num2-num1; if(c<0) c+=100; if(d<0) d+=100; return min(a,min(b,min(c,d))); } int main(){ cin>>kk; if(is_s(kk)){ cout<<kk; return 0; } while(kk>0){ k[i++]=kk%10; kk/=10; } for(int i=99999;i>0;i--){ int u=i,z=0,uu[5]; for(int p=0;p<5;p++){ uu[p]=0; } if(is_s(i)){ while(u>0){ uu[z++]=u%10; u/=10; } int sum; for(int j=0;j<5;j++){ sum+=(abs(uu[j],k[j])); } if(sum<small){ small=sum; ans=i; } sum=0; } } printf("%05d",ans); return 0; }


测评信息: