import java.util.*; public class Main{ public static void print(String a){ System.out.println(a); } public static void print(int a){ System.out.println(a); } public static void print(long a){ System.out.println(a); } public static int pow(int a,int b){ int res=1; while (b>0){ if (b%2==1){ res*=a; } a*=a;b>>=1; } return res; } public static int pow(int a,int b,int mod){ int res=1; while (b>1){ if (b%2==1){ res=res*a%mod; } a=a*a%mod;b>>=1; } return res; } public static long pow(long a,long b){ long res=1; while (b>0){ if (b%2==1){ res*=a; } a*=a;b>>=1; } return res; } public static long pow(long a,long b,long mod){ long res=1; while (b>1){ if (b%2==1){ res=res*a%mod; } a=a*a%mod;b>>=1; } return res; } public static int abs(int a){ if (a<0){ return -a; } return a; } public static long abs(long a){ if (a<0){ return -a; } return a; } public static int gcd(int x,int y){ if (Math.min(x,y)==0){ return Math.max(x,y); } int z; while (x%y>0){ z=x%y; x=y;y=z; } return y; } public static long gcd(long x,long y){ if (Math.min(x,y)==0){ return Math.max(x,y); } long z; while (x%y>0){ z=x%y; x=y;y=z; } return y; } public static void main(String[] args){ Scanner sc=new Scanner(System.in); long n; int ans=0; n=sc.nextLong(); HashSet set=new HashSet<>(); for (long i=1;i<(long) Math.pow(n,0.5)+1;i++){ if (n%i==0){ long c=1; while (i>=c){ c*=10; } set.add(c*(n/i)+i); c=1; long d=n/i; while (c<=d){ c*=10; } set.add(c*i+d); } } print(set.size()); sc.close(); } }