#include <bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
if (x==0 || x==1) return false;
if (x==2) return true;
if (x%2 == 0) return false;
for (int i=3; i<=sqrt(x); i=i+2) {
if (x%i == 0) return false;
}
return true;
}
int main()
{
string s;
cin>>s;
int size = s.size();
set<int> set;
for (int i=0; i<size; i++) {
for (int j=1; j<=6 && i+j-1<size; j++) {
int s1 = stoi(s.substr(i, j));
if (isPrime(s1)){
set.insert(s1);
}
}
}
cout<<set.size();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKYm9vbCBpc1ByaW1lKGludCB4KSB7CiAgICBpZiAoeD09MCB8fCB4PT0xKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoeD09MikgcmV0dXJuIHRydWU7CiAgICBpZiAoeCUyID09IDApIHJldHVybiBmYWxzZTsKICAgIAogICAgZm9yIChpbnQgaT0zOyBpPD1zcXJ0KHgpOyBpPWkrMikgewogICAgICAgIGlmICh4JWkgPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgfQogICAgCiAgICByZXR1cm4gdHJ1ZTsKfQppbnQgbWFpbigpCnsKICAgIHN0cmluZyBzOwogICAgY2luPj5zOwogICAgaW50IHNpemUgPSBzLnNpemUoKTsKICAgIHNldDxpbnQ+IHNldDsKICAgIAogICAgZm9yIChpbnQgaT0wOyBpPHNpemU7IGkrKykgewogICAgICAgIGZvciAoaW50IGo9MTsgajw9NiAmJiBpK2otMTxzaXplOyBqKyspIHsKICAgICAgICAgICAgaW50IHMxID0gc3RvaShzLnN1YnN0cihpLCBqKSk7CiAgICAgICAgICAgIGlmIChpc1ByaW1lKHMxKSl7CiAgICAgICAgICAgICAgICBzZXQuaW5zZXJ0KHMxKTsKICAgICAgICAgICAgfSAKICAgICAgICB9CiAgICB9CiAgICAgICAgY291dDw8c2V0LnNpemUoKTsKICAgICAgICAKICAgIHJldHVybiAwOwp9