UPC-解密码

42 篇文章 1 订阅
30 篇文章 8 订阅

山再高,往上爬,总能登顶;
路再长,走下去,定能到达。

UPC-解密码

题目描述

跑男们都被关进了瘦西湖风景区中的不同地点,天才陈赤赤被关在了白塔中。为了打开门上的密码锁,必须按照规则变换锁上的数字:开始给定一个4位的质数a,每次改变质数的一位(改变后仍为质数),用最少的次数改变后得到b,若不可能,则次数为0。
“论吃饭我一个人可以拼他们六个!”
“你是猪吗?”
“嗝~~~”
……
陈赤赤啰嗦了大半天也没有半点头绪,眼看天就黑了,作为黑衣人的你实在看不下去了,扔了一张小纸条给他。

输入

输入共一行,包含两个整数a,b。

输出

输出共一行,包含一个整数,表示最少的步数。

Sample Input

1033 8179

Sample Output

6

Hint

1033->1733->3733->3739->3779->8779->8179
其中1033,1733,3733,3739,3779,8779,8179均为质数。

思路分析
这题就是每一位改变一下的bfs,就问你怎么变,变哪个。多次之后最先到达ans的结果
bfs的整体结构马上就出来了,但是有个问题是我门的judge数组(判断可不可用的数组)应该怎么搞?
题目说了只走质数,而且在1000-9999之间。那么我想到一个毒瘤的方法,直接打表……
😂
好说走咱就走啊
在这里插入图片描述
然后把这个复制下,放在自己的主程序里。
在这里插入图片描述

我如此操作,调用change函数可以让代码看起来更轻松一些。
然后就是标准的bfs步骤了。
依次改变个位数十位数百位数千位数就好从0-9就OK
AC时间到

#include<algorithm>
#include<iostream>
#include<string.h>
#include <iomanip>
#include<stdio.h>
#include<utility>
#include<vector>
#include<string>
#include<math.h>
#include<cmath>
#include<queue>
#include<stack>
#include<deque>
#include<map>
#pragma warning(disable:4244)
#define PI 3.1415926536
#pragma GCC optimize(2)
#define accelerate cin.tie(NULL);cout.tie(NULL);ios::sync_with_stdio(false);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll ll_inf = 9223372036854775807;
const int int_inf = 2147483647;
const short short_inf = 32767;
const char char_inf = 127;
ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
inline ll read() {
	ll c = getchar(), Nig = 1, x = 0;
	while (!isdigit(c) && c != '-')c = getchar();
	if (c == '-')Nig = -1, c = getchar();
	while (isdigit(c))x = ((x << 1) + (x << 3)) + (c ^ '0'), c = getchar();
	return Nig * x;
}
inline void out(ll a) {
	if (a < 0)putchar('-'), a = -a;
	if (a >= 10)out(a / 10);
	putchar(a % 10 + '0');
}
ll qpow(ll x, ll n, ll mod) {
	ll res = 1;
	while (n > 0) {
		if (n & 1)res = (res * x) % mod;
		x = (x * x) % mod;
		n >>= 1;
	}
	return res;
}
#define Floyd for(int k = 1; k <= n; k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)
#define read read()
bool judge[10010];
void change()
{
	judge[1009] = 1; judge[1013] = 1; judge[1019] = 1; judge[1021] = 1; judge[1031] = 1;
	judge[1033] = 1; judge[1039] = 1; judge[1049] = 1; judge[1051] = 1; judge[1061] = 1;
	judge[1063] = 1; judge[1069] = 1; judge[1087] = 1; judge[1091] = 1; judge[1093] = 1;
	judge[1097] = 1; judge[1103] = 1; judge[1109] = 1; judge[1117] = 1; judge[1123] = 1;
	judge[1129] = 1; judge[1151] = 1; judge[1153] = 1; judge[1163] = 1; judge[1171] = 1;
	judge[1181] = 1; judge[1187] = 1; judge[1193] = 1; judge[1201] = 1; judge[1213] = 1;
	judge[1217] = 1; judge[1223] = 1; judge[1229] = 1; judge[1231] = 1; judge[1237] = 1;
	judge[1249] = 1; judge[1259] = 1; judge[1277] = 1; judge[1279] = 1; judge[1283] = 1;
	judge[1289] = 1; judge[1291] = 1; judge[1297] = 1; judge[1301] = 1; judge[1303] = 1;
	judge[1307] = 1; judge[1319] = 1; judge[1321] = 1; judge[1327] = 1; judge[1361] = 1;
	judge[1367] = 1; judge[1373] = 1; judge[1381] = 1; judge[1399] = 1; judge[1409] = 1;
	judge[1423] = 1; judge[1427] = 1; judge[1429] = 1; judge[1433] = 1; judge[1439] = 1;
	judge[1447] = 1; judge[1451] = 1; judge[1453] = 1; judge[1459] = 1; judge[1471] = 1;
	judge[1481] = 1; judge[1483] = 1; judge[1487] = 1; judge[1489] = 1; judge[1493] = 1;
	judge[1499] = 1; judge[1511] = 1; judge[1523] = 1; judge[1531] = 1; judge[1543] = 1;
	judge[1549] = 1; judge[1553] = 1; judge[1559] = 1; judge[1567] = 1; judge[1571] = 1;
	judge[1579] = 1; judge[1583] = 1; judge[1597] = 1; judge[1601] = 1; judge[1607] = 1;
	judge[1609] = 1; judge[1613] = 1; judge[1619] = 1; judge[1621] = 1; judge[1627] = 1;
	judge[1637] = 1; judge[1657] = 1; judge[1663] = 1; judge[1667] = 1; judge[1669] = 1;
	judge[1693] = 1; judge[1697] = 1; judge[1699] = 1; judge[1709] = 1; judge[1721] = 1;
	judge[1723] = 1; judge[1733] = 1; judge[1741] = 1; judge[1747] = 1; judge[1753] = 1;
	judge[1759] = 1; judge[1777] = 1; judge[1783] = 1; judge[1787] = 1; judge[1789] = 1;
	judge[1801] = 1; judge[1811] = 1; judge[1823] = 1; judge[1831] = 1; judge[1847] = 1;
	judge[1861] = 1; judge[1867] = 1; judge[1871] = 1; judge[1873] = 1; judge[1877] = 1;
	judge[1879] = 1; judge[1889] = 1; judge[1901] = 1; judge[1907] = 1; judge[1913] = 1;
	judge[1931] = 1; judge[1933] = 1; judge[1949] = 1; judge[1951] = 1; judge[1973] = 1;
	judge[1979] = 1; judge[1987] = 1; judge[1993] = 1; judge[1997] = 1; judge[1999] = 1;
	judge[2003] = 1; judge[2011] = 1; judge[2017] = 1; judge[2027] = 1; judge[2029] = 1;
	judge[2039] = 1; judge[2053] = 1; judge[2063] = 1; judge[2069] = 1; judge[2081] = 1;
	judge[2083] = 1; judge[2087] = 1; judge[2089] = 1; judge[2099] = 1; judge[2111] = 1;
	judge[2113] = 1; judge[2129] = 1; judge[2131] = 1; judge[2137] = 1; judge[2141] = 1;
	judge[2143] = 1; judge[2153] = 1; judge[2161] = 1; judge[2179] = 1; judge[2203] = 1;
	judge[2207] = 1; judge[2213] = 1; judge[2221] = 1; judge[2237] = 1; judge[2239] = 1;
	judge[2243] = 1; judge[2251] = 1; judge[2267] = 1; judge[2269] = 1; judge[2273] = 1;
	judge[2281] = 1; judge[2287] = 1; judge[2293] = 1; judge[2297] = 1; judge[2309] = 1;
	judge[2311] = 1; judge[2333] = 1; judge[2339] = 1; judge[2341] = 1; judge[2347] = 1;
	judge[2351] = 1; judge[2357] = 1; judge[2371] = 1; judge[2377] = 1; judge[2381] = 1;
	judge[2383] = 1; judge[2389] = 1; judge[2393] = 1; judge[2399] = 1; judge[2411] = 1;
	judge[2417] = 1; judge[2423] = 1; judge[2437] = 1; judge[2441] = 1; judge[2447] = 1;
	judge[2459] = 1; judge[2467] = 1; judge[2473] = 1; judge[2477] = 1; judge[2503] = 1;
	judge[2521] = 1; judge[2531] = 1; judge[2539] = 1; judge[2543] = 1; judge[2549] = 1;
	judge[2551] = 1; judge[2557] = 1; judge[2579] = 1; judge[2591] = 1; judge[2593] = 1;
	judge[2609] = 1; judge[2617] = 1; judge[2621] = 1; judge[2633] = 1; judge[2647] = 1;
	judge[2657] = 1; judge[2659] = 1; judge[2663] = 1; judge[2671] = 1; judge[2677] = 1;
	judge[2683] = 1; judge[2687] = 1; judge[2689] = 1; judge[2693] = 1; judge[2699] = 1;
	judge[2707] = 1; judge[2711] = 1; judge[2713] = 1; judge[2719] = 1; judge[2729] = 1;
	judge[2731] = 1; judge[2741] = 1; judge[2749] = 1; judge[2753] = 1; judge[2767] = 1;
	judge[2777] = 1; judge[2789] = 1; judge[2791] = 1; judge[2797] = 1; judge[2801] = 1;
	judge[2803] = 1; judge[2819] = 1; judge[2833] = 1; judge[2837] = 1; judge[2843] = 1;
	judge[2851] = 1; judge[2857] = 1; judge[2861] = 1; judge[2879] = 1; judge[2887] = 1;
	judge[2897] = 1; judge[2903] = 1; judge[2909] = 1; judge[2917] = 1; judge[2927] = 1;
	judge[2939] = 1; judge[2953] = 1; judge[2957] = 1; judge[2963] = 1; judge[2969] = 1;
	judge[2971] = 1; judge[2999] = 1; judge[3001] = 1; judge[3011] = 1; judge[3019] = 1;
	judge[3023] = 1; judge[3037] = 1; judge[3041] = 1; judge[3049] = 1; judge[3061] = 1;
	judge[3067] = 1; judge[3079] = 1; judge[3083] = 1; judge[3089] = 1; judge[3109] = 1;
	judge[3119] = 1; judge[3121] = 1; judge[3137] = 1; judge[3163] = 1; judge[3167] = 1;
	judge[3169] = 1; judge[3181] = 1; judge[3187] = 1; judge[3191] = 1; judge[3203] = 1;
	judge[3209] = 1; judge[3217] = 1; judge[3221] = 1; judge[3229] = 1; judge[3251] = 1;
	judge[3253] = 1; judge[3257] = 1; judge[3259] = 1; judge[3271] = 1; judge[3299] = 1;
	judge[3301] = 1; judge[3307] = 1; judge[3313] = 1; judge[3319] = 1; judge[3323] = 1;
	judge[3329] = 1; judge[3331] = 1; judge[3343] = 1; judge[3347] = 1; judge[3359] = 1;
	judge[3361] = 1; judge[3371] = 1; judge[3373] = 1; judge[3389] = 1; judge[3391] = 1;
	judge[3407] = 1; judge[3413] = 1; judge[3433] = 1; judge[3449] = 1; judge[3457] = 1;
	judge[3461] = 1; judge[3463] = 1; judge[3467] = 1; judge[3469] = 1; judge[3491] = 1;
	judge[3499] = 1; judge[3511] = 1; judge[3517] = 1; judge[3527] = 1; judge[3529] = 1;
	judge[3533] = 1; judge[3539] = 1; judge[3541] = 1; judge[3547] = 1; judge[3557] = 1;
	judge[3559] = 1; judge[3571] = 1; judge[3581] = 1; judge[3583] = 1; judge[3593] = 1;
	judge[3607] = 1; judge[3613] = 1; judge[3617] = 1; judge[3623] = 1; judge[3631] = 1;
	judge[3637] = 1; judge[3643] = 1; judge[3659] = 1; judge[3671] = 1; judge[3673] = 1;
	judge[3677] = 1; judge[3691] = 1; judge[3697] = 1; judge[3701] = 1; judge[3709] = 1;
	judge[3719] = 1; judge[3727] = 1; judge[3733] = 1; judge[3739] = 1; judge[3761] = 1;
	judge[3767] = 1; judge[3769] = 1; judge[3779] = 1; judge[3793] = 1; judge[3797] = 1;
	judge[3803] = 1; judge[3821] = 1; judge[3823] = 1; judge[3833] = 1; judge[3847] = 1;
	judge[3851] = 1; judge[3853] = 1; judge[3863] = 1; judge[3877] = 1; judge[3881] = 1;
	judge[3889] = 1; judge[3907] = 1; judge[3911] = 1; judge[3917] = 1; judge[3919] = 1;
	judge[3923] = 1; judge[3929] = 1; judge[3931] = 1; judge[3943] = 1; judge[3947] = 1;
	judge[3967] = 1; judge[3989] = 1; judge[4001] = 1; judge[4003] = 1; judge[4007] = 1;
	judge[4013] = 1; judge[4019] = 1; judge[4021] = 1; judge[4027] = 1; judge[4049] = 1;
	judge[4051] = 1; judge[4057] = 1; judge[4073] = 1; judge[4079] = 1; judge[4091] = 1;
	judge[4093] = 1; judge[4099] = 1; judge[4111] = 1; judge[4127] = 1; judge[4129] = 1;
	judge[4133] = 1; judge[4139] = 1; judge[4153] = 1; judge[4157] = 1; judge[4159] = 1;
	judge[4177] = 1; judge[4201] = 1; judge[4211] = 1; judge[4217] = 1; judge[4219] = 1;
	judge[4229] = 1; judge[4231] = 1; judge[4241] = 1; judge[4243] = 1; judge[4253] = 1;
	judge[4259] = 1; judge[4261] = 1; judge[4271] = 1; judge[4273] = 1; judge[4283] = 1;
	judge[4289] = 1; judge[4297] = 1; judge[4327] = 1; judge[4337] = 1; judge[4339] = 1;
	judge[4349] = 1; judge[4357] = 1; judge[4363] = 1; judge[4373] = 1; judge[4391] = 1;
	judge[4397] = 1; judge[4409] = 1; judge[4421] = 1; judge[4423] = 1; judge[4441] = 1;
	judge[4447] = 1; judge[4451] = 1; judge[4457] = 1; judge[4463] = 1; judge[4481] = 1;
	judge[4483] = 1; judge[4493] = 1; judge[4507] = 1; judge[4513] = 1; judge[4517] = 1;
	judge[4519] = 1; judge[4523] = 1; judge[4547] = 1; judge[4549] = 1; judge[4561] = 1;
	judge[4567] = 1; judge[4583] = 1; judge[4591] = 1; judge[4597] = 1; judge[4603] = 1;
	judge[4621] = 1; judge[4637] = 1; judge[4639] = 1; judge[4643] = 1; judge[4649] = 1;
	judge[4651] = 1; judge[4657] = 1; judge[4663] = 1; judge[4673] = 1; judge[4679] = 1;
	judge[4691] = 1; judge[4703] = 1; judge[4721] = 1; judge[4723] = 1; judge[4729] = 1;
	judge[4733] = 1; judge[4751] = 1; judge[4759] = 1; judge[4783] = 1; judge[4787] = 1;
	judge[4789] = 1; judge[4793] = 1; judge[4799] = 1; judge[4801] = 1; judge[4813] = 1;
	judge[4817] = 1; judge[4831] = 1; judge[4861] = 1; judge[4871] = 1; judge[4877] = 1;
	judge[4889] = 1; judge[4903] = 1; judge[4909] = 1; judge[4919] = 1; judge[4931] = 1;
	judge[4933] = 1; judge[4937] = 1; judge[4943] = 1; judge[4951] = 1; judge[4957] = 1;
	judge[4967] = 1; judge[4969] = 1; judge[4973] = 1; judge[4987] = 1; judge[4993] = 1;
	judge[4999] = 1; judge[5003] = 1; judge[5009] = 1; judge[5011] = 1; judge[5021] = 1;
	judge[5023] = 1; judge[5039] = 1; judge[5051] = 1; judge[5059] = 1; judge[5077] = 1;
	judge[5081] = 1; judge[5087] = 1; judge[5099] = 1; judge[5101] = 1; judge[5107] = 1;
	judge[5113] = 1; judge[5119] = 1; judge[5147] = 1; judge[5153] = 1; judge[5167] = 1;
	judge[5171] = 1; judge[5179] = 1; judge[5189] = 1; judge[5197] = 1; judge[5209] = 1;
	judge[5227] = 1; judge[5231] = 1; judge[5233] = 1; judge[5237] = 1; judge[5261] = 1;
	judge[5273] = 1; judge[5279] = 1; judge[5281] = 1; judge[5297] = 1; judge[5303] = 1;
	judge[5309] = 1; judge[5323] = 1; judge[5333] = 1; judge[5347] = 1; judge[5351] = 1;
	judge[5381] = 1; judge[5387] = 1; judge[5393] = 1; judge[5399] = 1; judge[5407] = 1;
	judge[5413] = 1; judge[5417] = 1; judge[5419] = 1; judge[5431] = 1; judge[5437] = 1;
	judge[5441] = 1; judge[5443] = 1; judge[5449] = 1; judge[5471] = 1; judge[5477] = 1;
	judge[5479] = 1; judge[5483] = 1; judge[5501] = 1; judge[5503] = 1; judge[5507] = 1;
	judge[5519] = 1; judge[5521] = 1; judge[5527] = 1; judge[5531] = 1; judge[5557] = 1;
	judge[5563] = 1; judge[5569] = 1; judge[5573] = 1; judge[5581] = 1; judge[5591] = 1;
	judge[5623] = 1; judge[5639] = 1; judge[5641] = 1; judge[5647] = 1; judge[5651] = 1;
	judge[5653] = 1; judge[5657] = 1; judge[5659] = 1; judge[5669] = 1; judge[5683] = 1;
	judge[5689] = 1; judge[5693] = 1; judge[5701] = 1; judge[5711] = 1; judge[5717] = 1;
	judge[5737] = 1; judge[5741] = 1; judge[5743] = 1; judge[5749] = 1; judge[5779] = 1;
	judge[5783] = 1; judge[5791] = 1; judge[5801] = 1; judge[5807] = 1; judge[5813] = 1;
	judge[5821] = 1; judge[5827] = 1; judge[5839] = 1; judge[5843] = 1; judge[5849] = 1;
	judge[5851] = 1; judge[5857] = 1; judge[5861] = 1; judge[5867] = 1; judge[5869] = 1;
	judge[5879] = 1; judge[5881] = 1; judge[5897] = 1; judge[5903] = 1; judge[5923] = 1;
	judge[5927] = 1; judge[5939] = 1; judge[5953] = 1; judge[5981] = 1; judge[5987] = 1;
	judge[6007] = 1; judge[6011] = 1; judge[6029] = 1; judge[6037] = 1; judge[6043] = 1;
	judge[6047] = 1; judge[6053] = 1; judge[6067] = 1; judge[6073] = 1; judge[6079] = 1;
	judge[6089] = 1; judge[6091] = 1; judge[6101] = 1; judge[6113] = 1; judge[6121] = 1;
	judge[6131] = 1; judge[6133] = 1; judge[6143] = 1; judge[6151] = 1; judge[6163] = 1;
	judge[6173] = 1; judge[6197] = 1; judge[6199] = 1; judge[6203] = 1; judge[6211] = 1;
	judge[6217] = 1; judge[6221] = 1; judge[6229] = 1; judge[6247] = 1; judge[6257] = 1;
	judge[6263] = 1; judge[6269] = 1; judge[6271] = 1; judge[6277] = 1; judge[6287] = 1;
	judge[6299] = 1; judge[6301] = 1; judge[6311] = 1; judge[6317] = 1; judge[6323] = 1;
	judge[6329] = 1; judge[6337] = 1; judge[6343] = 1; judge[6353] = 1; judge[6359] = 1;
	judge[6361] = 1; judge[6367] = 1; judge[6373] = 1; judge[6379] = 1; judge[6389] = 1;
	judge[6397] = 1; judge[6421] = 1; judge[6427] = 1; judge[6449] = 1; judge[6451] = 1;
	judge[6469] = 1; judge[6473] = 1; judge[6481] = 1; judge[6491] = 1; judge[6521] = 1;
	judge[6529] = 1; judge[6547] = 1; judge[6551] = 1; judge[6553] = 1; judge[6563] = 1;
	judge[6569] = 1; judge[6571] = 1; judge[6577] = 1; judge[6581] = 1; judge[6599] = 1;
	judge[6607] = 1; judge[6619] = 1; judge[6637] = 1; judge[6653] = 1; judge[6659] = 1;
	judge[6661] = 1; judge[6673] = 1; judge[6679] = 1; judge[6689] = 1; judge[6691] = 1;
	judge[6701] = 1; judge[6703] = 1; judge[6709] = 1; judge[6719] = 1; judge[6733] = 1;
	judge[6737] = 1; judge[6761] = 1; judge[6763] = 1; judge[6779] = 1; judge[6781] = 1;
	judge[6791] = 1; judge[6793] = 1; judge[6803] = 1; judge[6823] = 1; judge[6827] = 1;
	judge[6829] = 1; judge[6833] = 1; judge[6841] = 1; judge[6857] = 1; judge[6863] = 1;
	judge[6869] = 1; judge[6871] = 1; judge[6883] = 1; judge[6899] = 1; judge[6907] = 1;
	judge[6911] = 1; judge[6917] = 1; judge[6947] = 1; judge[6949] = 1; judge[6959] = 1;
	judge[6961] = 1; judge[6967] = 1; judge[6971] = 1; judge[6977] = 1; judge[6983] = 1;
	judge[6991] = 1; judge[6997] = 1; judge[7001] = 1; judge[7013] = 1; judge[7019] = 1;
	judge[7027] = 1; judge[7039] = 1; judge[7043] = 1; judge[7057] = 1; judge[7069] = 1;
	judge[7079] = 1; judge[7103] = 1; judge[7109] = 1; judge[7121] = 1; judge[7127] = 1;
	judge[7129] = 1; judge[7151] = 1; judge[7159] = 1; judge[7177] = 1; judge[7187] = 1;
	judge[7193] = 1; judge[7207] = 1; judge[7211] = 1; judge[7213] = 1; judge[7219] = 1;
	judge[7229] = 1; judge[7237] = 1; judge[7243] = 1; judge[7247] = 1; judge[7253] = 1;
	judge[7283] = 1; judge[7297] = 1; judge[7307] = 1; judge[7309] = 1; judge[7321] = 1;
	judge[7331] = 1; judge[7333] = 1; judge[7349] = 1; judge[7351] = 1; judge[7369] = 1;
	judge[7393] = 1; judge[7411] = 1; judge[7417] = 1; judge[7433] = 1; judge[7451] = 1;
	judge[7457] = 1; judge[7459] = 1; judge[7477] = 1; judge[7481] = 1; judge[7487] = 1;
	judge[7489] = 1; judge[7499] = 1; judge[7507] = 1; judge[7517] = 1; judge[7523] = 1;
	judge[7529] = 1; judge[7537] = 1; judge[7541] = 1; judge[7547] = 1; judge[7549] = 1;
	judge[7559] = 1; judge[7561] = 1; judge[7573] = 1; judge[7577] = 1; judge[7583] = 1;
	judge[7589] = 1; judge[7591] = 1; judge[7603] = 1; judge[7607] = 1; judge[7621] = 1;
	judge[7639] = 1; judge[7643] = 1; judge[7649] = 1; judge[7669] = 1; judge[7673] = 1;
	judge[7681] = 1; judge[7687] = 1; judge[7691] = 1; judge[7699] = 1; judge[7703] = 1;
	judge[7717] = 1; judge[7723] = 1; judge[7727] = 1; judge[7741] = 1; judge[7753] = 1;
	judge[7757] = 1; judge[7759] = 1; judge[7789] = 1; judge[7793] = 1; judge[7817] = 1;
	judge[7823] = 1; judge[7829] = 1; judge[7841] = 1; judge[7853] = 1; judge[7867] = 1;
	judge[7873] = 1; judge[7877] = 1; judge[7879] = 1; judge[7883] = 1; judge[7901] = 1;
	judge[7907] = 1; judge[7919] = 1; judge[7927] = 1; judge[7933] = 1; judge[7937] = 1;
	judge[7949] = 1; judge[7951] = 1; judge[7963] = 1; judge[7993] = 1; judge[8009] = 1;
	judge[8011] = 1; judge[8017] = 1; judge[8039] = 1; judge[8053] = 1; judge[8059] = 1;
	judge[8069] = 1; judge[8081] = 1; judge[8087] = 1; judge[8089] = 1; judge[8093] = 1;
	judge[8101] = 1; judge[8111] = 1; judge[8117] = 1; judge[8123] = 1; judge[8147] = 1;
	judge[8161] = 1; judge[8167] = 1; judge[8171] = 1; judge[8179] = 1; judge[8191] = 1;
	judge[8209] = 1; judge[8219] = 1; judge[8221] = 1; judge[8231] = 1; judge[8233] = 1;
	judge[8237] = 1; judge[8243] = 1; judge[8263] = 1; judge[8269] = 1; judge[8273] = 1;
	judge[8287] = 1; judge[8291] = 1; judge[8293] = 1; judge[8297] = 1; judge[8311] = 1;
	judge[8317] = 1; judge[8329] = 1; judge[8353] = 1; judge[8363] = 1; judge[8369] = 1;
	judge[8377] = 1; judge[8387] = 1; judge[8389] = 1; judge[8419] = 1; judge[8423] = 1;
	judge[8429] = 1; judge[8431] = 1; judge[8443] = 1; judge[8447] = 1; judge[8461] = 1;
	judge[8467] = 1; judge[8501] = 1; judge[8513] = 1; judge[8521] = 1; judge[8527] = 1;
	judge[8537] = 1; judge[8539] = 1; judge[8543] = 1; judge[8563] = 1; judge[8573] = 1;
	judge[8581] = 1; judge[8597] = 1; judge[8599] = 1; judge[8609] = 1; judge[8623] = 1;
	judge[8627] = 1; judge[8629] = 1; judge[8641] = 1; judge[8647] = 1; judge[8663] = 1;
	judge[8669] = 1; judge[8677] = 1; judge[8681] = 1; judge[8689] = 1; judge[8693] = 1;
	judge[8699] = 1; judge[8707] = 1; judge[8713] = 1; judge[8719] = 1; judge[8731] = 1;
	judge[8737] = 1; judge[8741] = 1; judge[8747] = 1; judge[8753] = 1; judge[8761] = 1;
	judge[8779] = 1; judge[8783] = 1; judge[8803] = 1; judge[8807] = 1; judge[8819] = 1;
	judge[8821] = 1; judge[8831] = 1; judge[8837] = 1; judge[8839] = 1; judge[8849] = 1;
	judge[8861] = 1; judge[8863] = 1; judge[8867] = 1; judge[8887] = 1; judge[8893] = 1;
	judge[8923] = 1; judge[8929] = 1; judge[8933] = 1; judge[8941] = 1; judge[8951] = 1;
	judge[8963] = 1; judge[8969] = 1; judge[8971] = 1; judge[8999] = 1; judge[9001] = 1;
	judge[9007] = 1; judge[9011] = 1; judge[9013] = 1; judge[9029] = 1; judge[9041] = 1;
	judge[9043] = 1; judge[9049] = 1; judge[9059] = 1; judge[9067] = 1; judge[9091] = 1;
	judge[9103] = 1; judge[9109] = 1; judge[9127] = 1; judge[9133] = 1; judge[9137] = 1;
	judge[9151] = 1; judge[9157] = 1; judge[9161] = 1; judge[9173] = 1; judge[9181] = 1;
	judge[9187] = 1; judge[9199] = 1; judge[9203] = 1; judge[9209] = 1; judge[9221] = 1;
	judge[9227] = 1; judge[9239] = 1; judge[9241] = 1; judge[9257] = 1; judge[9277] = 1;
	judge[9281] = 1; judge[9283] = 1; judge[9293] = 1; judge[9311] = 1; judge[9319] = 1;
	judge[9323] = 1; judge[9337] = 1; judge[9341] = 1; judge[9343] = 1; judge[9349] = 1;
	judge[9371] = 1; judge[9377] = 1; judge[9391] = 1; judge[9397] = 1; judge[9403] = 1;
	judge[9413] = 1; judge[9419] = 1; judge[9421] = 1; judge[9431] = 1; judge[9433] = 1;
	judge[9437] = 1; judge[9439] = 1; judge[9461] = 1; judge[9463] = 1; judge[9467] = 1;
	judge[9473] = 1; judge[9479] = 1; judge[9491] = 1; judge[9497] = 1; judge[9511] = 1;
	judge[9521] = 1; judge[9533] = 1; judge[9539] = 1; judge[9547] = 1; judge[9551] = 1;
	judge[9587] = 1; judge[9601] = 1; judge[9613] = 1; judge[9619] = 1; judge[9623] = 1;
	judge[9629] = 1; judge[9631] = 1; judge[9643] = 1; judge[9649] = 1; judge[9661] = 1;
	judge[9677] = 1; judge[9679] = 1; judge[9689] = 1; judge[9697] = 1; judge[9719] = 1;
	judge[9721] = 1; judge[9733] = 1; judge[9739] = 1; judge[9743] = 1; judge[9749] = 1;
	judge[9767] = 1; judge[9769] = 1; judge[9781] = 1; judge[9787] = 1; judge[9791] = 1;
	judge[9803] = 1; judge[9811] = 1; judge[9817] = 1; judge[9829] = 1; judge[9833] = 1;
	judge[9839] = 1; judge[9851] = 1; judge[9857] = 1; judge[9859] = 1; judge[9871] = 1;
	judge[9883] = 1; judge[9887] = 1; judge[9901] = 1; judge[9907] = 1; judge[9923] = 1;
	judge[9929] = 1; judge[9931] = 1; judge[9941] = 1; judge[9949] = 1; judge[9967] = 1;
	judge[9973] = 1;
}
struct node {
	int num, step;
};
queue<node>q;
int a, b;
node temp;
int mark;
void bfs()
{
	while (1)
	{
		if (q.empty())
		{
			cout << 0 << endl;
			return;
		}
		temp = q.front();
		q.pop();
		if (temp.num == b)
		{
			cout << temp.step << endl;
			return;
		}
		int num = temp.num / 10;//改变个位数
		num *= 10;
		for (int i = 0; i < 10; i++)
		{
			mark = num + i;
			if (judge[mark])
			{
				judge[mark] = 0;
				q.push(node{ mark,temp.step + 1 });
			}
		}
		num = temp.num / 100;//改变十位数
		num *= 100;
		num += temp.num % 10;
		for (int i = 0; i < 10; i++)
		{
			mark = num + i * 10;
			if (judge[mark])
			{
				judge[mark] = 0;
				q.push(node{ mark,temp.step + 1 });
			}
		}
		num = temp.num / 1000;//改变百位数
		num *= 1000;
		num += temp.num % 100;
		for (int i = 0; i < 10; i++)
		{
			mark = num + i * 100;
			if (judge[mark])
			{
				judge[mark] = 0;
				q.push(node{ mark,temp.step + 1 });
			}
		}
		num = temp.num % 1000;//改变千位数
		for (int i = 0; i < 10; i++)
		{
			mark = num + i * 1000;
			if (judge[mark])
			{
				judge[mark] = 0;
				q.push(node{ mark,temp.step + 1 });
			}
		}
	}
}
int main()
{
	change();//所有可用质数设为true
	a = read, b = read;
	q.push(node{ a,0 });
	judge[a] = 0;
	bfs();
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Round moon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值