没做完,先放在这里存一下,下次再来取
#include<iostream>
#include<cstdio>
using namespace std;
int t,a[10];
string x;
bool prime(int x){for(int i=2;i*i<=x;++i) if(!(x%i)) return false;return true;}
bool check(int x,int y,int z){return prime(x)&&prime(y)&&prime(z);}
void fds(int x[],int f){
if(f==9)if(check(a[1]*1000+a[2]*100+a[3]*10+a[4],a[5]*10+a[6],a[7]*10+a[8])) ans++;return;
int xx[10];
for(int i=1;i<=8;++i) xx[i]=x[i];
if(xx[f]==-1){
if(f>=1&&x<=4){
for(int i=0;i<=9;++i){
xx[f]=i;
fds(xx,f+1);
}
}
if(f>=5&&f<=6)
if(f>=7&&f<=8)
}
}
int main(){
scanf("%d",&t);
while(t--){
cin>>s;
for(int i=0;i<8;++i){
if(s[i]=='-') a[i+1]=-1;
else a[i+1]=s[i]-'0';
}
fds(a,1);
}
return 0;
}