#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
bool is_divisor(string& s, int l) {
  for (int i = l; i < s.size(); i++) {
    if (s[i] != s[i % l]) return false;
  }
  return true;
}
int main() {
  string s1, s2;
  cin >> s1 >> s2;
  int n = s1.size();
  int m = s2.size();
  int g = gcd(n, m);
  int ans = 0;
  for (int l = 1; l * l <= g; ++l) {
    if (g % l) continue;
    if (s1.substr(0, l) == s2.substr(0, l) && is_divisor(s1, l) &&
        is_divisor(s2, l)) {
      ans++;
    }
    if (l * l == g) break;
    int r = g / l;
    if (s1.substr(0, r) == s2.substr(0, r) && is_divisor(s1, r) &&
        is_divisor(s2, r)) {
      ans++;
    }
  }
  cout << ans << endl;
  return 0;
}
