https://codeforces.com/problemset/problem/1562/B
1 4 6 8 9 有以上数字的直接输出,位数为1
通过观察你会发现如果不含上面的字符那么只有2 3 5 7
题目保证有解,故两位一定有解,直接暴力枚举两位的数字
#include<bits/stdc++.h>
using namespace std;
bool check(int x)
{
for(int i=2;i<=x/i;i++) if(x%i==0) return true;
return false;
}
map<int,int>mp={{1,1},{4,1},{6,1},{8,1},{9,1}};
//2 3 5 7
int main(void)
{
int t; cin>>t;
while(t--)
{
int n; cin>>n;
string s; cin>>s;
bool flag=0;
for(int i=0;i<n;i++)
{
int temp=s[i]-'0';
if(mp[temp])
{
cout<<1<<endl;
cout<<temp<<endl;
flag=1;
break;
}
}
if(!flag)
{
bool flag1=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
int a=s[i]-'0';
int b=s[j]-'0';
if(check(a*10+b))
{
cout<<2<<endl;
cout<<a*10+b<<endl;
flag1=1;
break;
}
}
if(flag1) break;
}
}
}
}