#include <bits/stdc++.h>
#define MOD 998244353

using namespace std;

typedef long long ll;

map <string,int> mp;

void merge(string &x,string y) {
  for(int i=0;i<x.length();i++)
    if (y[i]=='0') x[i]='0';
}

int dp(string s) {
  if (s.empty()) return 1;
  if (mp.count(s)) return mp[s];
  int n=s.length(),ans=0;
  ans=(ans+((s[0]=='1')?2LL:1LL)*dp(s.substr(1,n)))%MOD;
  for(int i=1;2*i<=n;i++) {
  	string cur=s.substr(0,i);
  	for(int j=2;i*j<=n;j++) {
  		merge(cur,s.substr(i*(j-1),i*j));
  		ans=(ans+(ll)dp(cur)*dp(s.substr(i*j,n)))%MOD;
	  }
  }
  return mp[s]=ans;
}

int main() {
  string s;
  cin>>s;
  cout<<dp(s)<<endl;
  return 0;
}