#include using namespace std; #include using namespace atcoder; #define ll long long #define rep(i, n) for (int i = 0; i < (n); i++) #define P pair #define LP pair #define fi first #define se second #define pb push_back #define eb emplace_back #define all(s) s.begin(), s.end() #define rall(s) s.rbegin(), s.rend() template void chmax(T& a, T b) { a = max(a, b); }; template void chmin(T& a, T b) { a = min(a, b); }; bool isPrime(ll x) { for (int i = 2; i*i <= x; i++) { if (x%i==0) return false; } cout << x << endl; return true; } int main() { string s; cin >> s; int n = s.size(); int ans = 0; rep(i,1<<(n-1)) { auto f = [&](string s, int bit) { vector v; v.pb(0); rep(j,n) { if ((bit>>j)&1) v.pb(j+1); } v.pb(n); ll res = 0; rep(j, v.size()-1) { ll ten = 1; for (int k = v[j+1]-1; k >= v[j]; k--) { res += ten*(s[k]-'0'); ten *= 10; } } return res; }; ll x = f(s,i); if (isPrime(x)) ans++; } cout << ans << endl; return 0; }