#include <bits/stdc++.h>
using namespace std;
int conversion(string p) {
  int o;
  o = atoi(p.c_str());
  return o;
}
string toString(int h) {
  stringstream ss;
  ss << h;
  return ss.str();
}
string toStringLong(long long h) {
  stringstream ss;
  ss << h;
  return ss.str();
}
long long gcd(long long a, long long b) { return (b == 0 ? a : gcd(b, a % b)); }
int lcm(int a, int b) { return (a * (b / gcd(a, b))); }
bool veri(long long x, long long y) {
  string b = toStringLong(x);
  string a = toStringLong(y);
  for (int i = 0; i < a.size(); i++) {
    for (int j = 0; j < b.size(); j++) {
      if (a[i] == b[j]) {
        return true;
      }
    }
  }
  return false;
}
int cantida(long long x) {
  long long raiz = sqrt(x);
  int cnt = 0;
  set<long long> ad;
  for (int i = 1; i < raiz + 1; i++) {
    if (x % i == 0) {
      ad.insert(i);
      ad.insert(x / i);
    }
  }
  for (set<long long>::iterator i = ad.begin(); i != ad.end(); i++) {
    if (veri(x, *i)) {
      cnt++;
    }
  }
  return cnt;
}
int main() {
  long long x;
  cin >> x;
  cout << cantida(x) << endl;
}
