#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
using namespace std;
#define CLR(arr, val) memset(arr, val, sizeof(arr))
const int LEN=10010;
int prime[LEN], isqueue[LEN], steps[LEN];
int g, s, b, q;
void init()
{
for(int i=2, j; i*i<=LEN; i++)
{
if( !prime[i] )
for(j=i*i; j<=LEN; j+=i)
prime[j]=1;
}
}
inline void fun(int n)
{
q=n/1000;
b=n%1000/100;
s=n%100/10;
g=n%10;
}
inline int funa(int a, int b, int c, int d)
{
return a*1000+b*100+c*10+d;
}
void BFS(int pa, int pb)
{
queue<int> qq;
qq.push(pa);
isqueue[pa]=1;
steps[pa]=0;
int i, j, x, y;
while( 1 )
{
x=qq.front();
qq.pop();
if( x==pb ) break;
fun(x);
for(i=1; i<10; i++)
{
poj3126求一个素数到另一个素数每次变化一个数字的变化次数
最新推荐文章于 2021-05-18 00:36:46 发布
该博客介绍了一个算法问题,即求解从一个素数到另一个素数,每次只改变一个数字,最少需要多少步。通过使用广度优先搜索(BFS)策略,遍历所有可能的变化并记录步骤数,最终找到目标素数所需的最大步数。
摘要由CSDN通过智能技术生成