乌龟给自己的贵重物品上了密码锁。密码锁上有5个数字拨盘。每个数字拨盘每次向上
拨使数字增加1(9向上拨得到0),向下拨使数字减少1(0向下拨得到9)。
拨盘上的数字组成一个5位数。只要拨盘上的数字变为素数,密码锁就会被解开。素数(又称质数)是只能被1和它自身整除的大于1的自然数。因为乌龟动作实在太慢,他希望你帮他计算如何开锁,使得拨动的总次数最少。
#include<bits/stdc++.h> using namespace std; int x,ma=1000; int xx[10],yy[10],ans[10]; int prime(int x) { int i; if(x<2) return 0; for(i=2;i*i<=x;++i) if(______(1)________)return 0; return 1; } void check(int y) { int t=0,i,tot=0; memset (yy,0,sizeof(yy)); while(y){ yy[++t]=_____(2)_______; y/=10; } for(i=1;i<=5;++i) tot+=min(_____(3)______,abs(10+xx[i]-yy[i])); if (tot<ma){ ma =tot; for(i=1;i<=5;++i)ans[i]=yy[i]; } } int main() { int i,t=0; cin>>x; while(x){ xx[++t]=x%10; _____(4)______; } for(i=99999;i>=0;--i){ if (prime(i)==0)continue; ______(5)_______; } for(i=5;i>=1;--i)cout<<ans[i]; return 0; }