#include<stdio.h>
//思路:先把9个位置全部排列出来,再筛选符合条件的
int v[10]={0};
int m[10];
int cnt=0;
long long n;
void check()//写成乘法,避免错误 ,第一个加数为一位数,两位数;
{
if(n*(m[7]*100+m[8]*10+m[9])==(m[1]*(m[7]*100+m[8]*10+m[9])+(m[2]*10000+m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
if(n*(m[7]*100+m[8]*10+m[9])==((m[1]*10+m[2])*(m[7]*100+m[8]*10+m[9])+(m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
}
void out()//检查排列是不是真确的
{
for(int j=1;j<=9;j++)
{
printf("%d",m[j]);
}
printf("\n");
}
void dfs(int n)//全排列算法
{
if(n==10)
{
check();
//out();
return ;
}
for(int i=1;i<=9;i++)
{
if(v[i]==0)
{
v[i]=1;
m[n]=i;
dfs(n+1);
v[i]=0;
}
}
}
main()
{
scanf("%d",&n);
dfs(1);
printf("%d",cnt);
return 0;
}
//思路:先把9个位置全部排列出来,再筛选符合条件的
int v[10]={0};
int m[10];
int cnt=0;
long long n;
void check()//写成乘法,避免错误 ,第一个加数为一位数,两位数;
{
if(n*(m[7]*100+m[8]*10+m[9])==(m[1]*(m[7]*100+m[8]*10+m[9])+(m[2]*10000+m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
if(n*(m[7]*100+m[8]*10+m[9])==((m[1]*10+m[2])*(m[7]*100+m[8]*10+m[9])+(m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
}
void out()//检查排列是不是真确的
{
for(int j=1;j<=9;j++)
{
printf("%d",m[j]);
}
printf("\n");
}
void dfs(int n)//全排列算法
{
if(n==10)
{
check();
//out();
return ;
}
for(int i=1;i<=9;i++)
{
if(v[i]==0)
{
v[i]=1;
m[n]=i;
dfs(n+1);
v[i]=0;
}
}
}
main()
{
scanf("%d",&n);
dfs(1);
printf("%d",cnt);
return 0;
}