1343. Fairy Tale

1343

想了好一会 以为会有什么定理呢 没想到 就试着搜了 看来素数还是很多的 跑的飞快

注意会有前导0的情况 还有0,1不是素数。。。

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
#define LL long long
int flag;
char a[];
LL p[];
int judge(LL x)
{
if(x<)return ;
int i,o = sqrt(x*1.0);
for(i = ; i <= o+ ; i++)
if(x%i==)
return ;
return ;
}
void dfs(int x,LL s,int pa[])
{
if(flag) return ;
int i;
if(x>)
{
if(judge(s))
{
for(i = ; i <= ; i++)
cout<<pa[i];
puts("");
flag = ;
}
return ;
}
for(i = ; i <= ; i++)
{
s+=p[-x]*i;
pa[x] = i;
dfs(x+,s,pa);
s-=p[-x]*i;
}
}
int main()
{
int i,n;
int pa[];
LL s=;
cin>>n;
p[] = ;
for(i = ; i <= ; i++)
p[i] = p[i-]*;
for(i = ; i <= n ; i++)
{
cin>>a[i];
pa[i] = a[i]-'';
s+=(a[i]-'')*p[-i];
}
if(n==)
{
printf("%lld\n",s);
return ;
}
dfs(n+,s,pa);
return ;
}
上一篇:ural 1343. Fairy Tale


下一篇:[svc]rsync简单部署