没做完,先放在这里存一下,下次再来取
查看原帖
没做完,先放在这里存一下,下次再来取
994393
i__ak_ioi楼主2023/10/24 17:18

没做完,先放在这里存一下,下次再来取

#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;
}
2023/10/24 17:18
加载中...