#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <cmath>
#include <cstdio>
using namespace std;
//英语 看博友分析 抄博友程序 全排列巧妙 dfs没实现 快筛质数没实现 背
int prim[100000008];
map<int,int> mp;//抄博友程序
bool isprime ( int n )
{
int end = sqrt ( n ) ;
if ( n == 0 || n == 1 )
return false ;
if ( n == 2 )
return true ;
for ( int i = 2 ; i <= end ; i ++ )
if ( n % i == 0 )
return false ;
return true ;
}
//博友程序 快筛质数 背
/*
void Pretreatment()
{
not_prime[0] = not_prime[1] = true;
for(int i = 2;i < INF; ++i) {
if(!not_prime[i])
prime[++primes] = i;
for(int j = 1;j <= primes && i * prime[j] < INF; ++j) {
not_prime[i * prime[j]] = true;//不能交换 i=4时 找到 8不是素数 i=6时找到 12不是素数
if(i % prime[j] == 0) break;//不能交换
}
}
}
*/
int main()
{
/*
prim[0]=1;//TLE
prim[1]=1;
for(int i=2;i<100000000;i++)
{
if(prim[i]==0)
{
for(int j=2;j*i<100000000;j++)
{
prim[j*i]=1;
}
}
}*/
int T;
scanf("%d",&T);
//cin>>T;
for(int o=0;o<T;o++)
{
mp.clear();
char ts[10];
scanf("%s",ts);
string s;
s=ts;
//cin>>s;
int jg=0;
sort(s.begin(),s.end());
do{
int sum=0;
for(int i=0;i<s.size();i++)
{
sum=sum*10+s[i]-'0';
//if(prim[sum]==0 && mp[sum]==0)//抄博友程序 巧妙
if(isprime(sum) && mp[sum]==0)
{
//cout<<sum<<endl;
mp[sum]=1;
jg++;
}
}
}while(next_permutation(s.begin(),s.end()));
//cout<<jg<<endl;
printf("%d\n",jg);
}
return 0;
}