#include <bits/stdc++.h>
using namespace std;
void z_algo(char *s, int *z) {
  int n = strlen(s);
  z[0] = n;
  for (int i = 1, st = 0, en = 0; i < n; i++) {
    z[i] = en < i ? 0 : min(en - i, z[i - st]);
    while (i + z[i] < n && s[z[i]] == s[i + z[i]]) z[i]++;
    if (en < i + z[i] - 1) st = i, en = i + z[i] - 1;
  }
}
char s[200200], t[200200];
int f[200200], g[200200], ans;
int main() {
  scanf("%s %s", s, t);
  z_algo(s, f), z_algo(t, g);
  int n = strlen(s), m = strlen(t);
  for (int i = 0; i < n && i < m && s[i] == t[i]; i++) {
    if (n % (i + 1) == 0 && m % (i + 1) == 0 && f[i + 1] == n - i - 1 &&
        g[i + 1] == m - i - 1)
      ans++;
  }
  printf("%d\n", ans);
  return 0;
}
