publicclassMain{
Scanner s =newScanner(System.in);// 输入数int n;// 用来存全排列数int[] nums;// 用来判断哪些数使用过boolean[] used;int a, b, c;// 计数int cnt;publicvoidrun(){
n = s.nextInt();
nums =newint[10];
used =newboolean[10];dfs(1);
System.out.println(cnt);}publicvoiddfs(int i){// 边界if(i >9){// 对每一种排列进行枚举分段for(int x =1; x <=7; x++){for(int y = x +1; y <=8; y++){
a =subNums(1, x);
b =subNums(x +1, y);
c =subNums(y +1,9);// 对符合条件对数进行计数if(n * c == a * c + b) cnt++;}}return;}// 全排列搜索模型for(int k =1; k <=9; k++){if(!used[k]){
nums[i]= k;
used[k]=true;dfs(i +1);
nums[i]=0;
used[k]=false;}}}// 求每一段的数字privateintsubNums(int l,int r){int num =0;for(int i = l; i <= r; i++){
num = num *10+ nums[i];}return num;}publicstaticvoidmain(String[] args){newMain().run();}}