#include<bits/stdc++.h>
using namespace std;
const int mod=998244353;
string s;
map<string,int>f;
map<string,int>g;
int F(string s);
int G(string s)
{
    if(g.find(s)!=g.end())
    return g[s];
    if(s.size()==1)
    return g[s]=s[0]-'0'+1;
    for(int i=1;i<s.size();++i)
    {
        if(s.size()%i==0)
        {
            string t;
            for(int j=0;j<i;++j)
            {
                int r=1;
                for(int k=0;k<s.size()/i;++k)
                if(s[i*k+j]=='0')
                r=0;
                t+=(char)(r+'0');
            }
            g[s]=(g[s]+F(t))%mod;
        }
    }
    return g[s];
}
int F(string s)
{
    if(f.find(s)!=f.end())
    return f[s];
    for(int i=1;i<=s.size();++i)
    f[s]=(f[s]+1ll*F(s.substr(0,s.size()-i))*G(s.substr(s.size()-i,i))%mod)%mod;
    return f[s];
}
int main()
{
    cin>>s;
    f[""]=1;
    cout<<F(s)<<endl;
    return 0;
}