#include <iostream>
#define PB 163
#define MOD 1000000007
#define MAX 100000
#define ll long long
using namespace std;
ll ppow[MAX+1];
ll h1[MAX+1];
ll h2[MAX+1];
string s1, s2;
int main()
{
ppow[0] = 1;
for (int i = 1; i < MAX+1; ++i)
ppow[i] = (ppow[i-1] * PB) % MOD;
cin >> s1; cin >> s2;
int l1 = s1.size(), l2 = s2.size();
h1[0] = s1[0];
//cout << h1[0] << " ";
for (int i = 1; i < l1; ++i)
{
h1[i] = (((h1[i-1] * PB) % MOD) + s1[i]) % MOD;
//cout << h1[i] << " " ;
}
//cout << '\n';
h2[0] = s2[0];
//cout << h2[0] << " ";
for (int i = 1; i < l2; ++i)
{
h2[i] = (((h2[i-1] * PB) % MOD) + s2[i]) % MOD;
//cout << h2[i] << " " ;
}
//cout << '\n';
int ans = 0;
for (int i = 1; i <= l1; ++i)
{
if (l1 % i == 0 && l2 % i == 0)
{
bool flag = true;
ll temp = h1[i-1];
for (int j = 0; j < l1; j = j + i)
{
if (!j)
{
if (temp != h1[j+i-1])
flag = false;
}
else if (temp != ((h1[j+i-1] - (((((h1[j-1] * ppow[i]) % MOD)) % MOD) + MOD) % MOD)))
flag = false;
}
for (int j = 0; j < l2; j = j + i)
{
if (i == 4)
cout << ((h2[j+i-1] - (((((h2[j-1] * ppow[i]) % MOD)) % MOD) + MOD) % MOD)) << " " << "check" << '\n';
if (!j)
{
if (temp != h2[j+i-1])
flag = false;
}
else if (temp != ((h2[j+i-1] - (((((h2[j-1] * ppow[i]) % MOD)) % MOD) + MOD) % MOD)))
flag = false;
}
ans += flag;
}
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIFBCIDE2MwojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgTUFYIDEwMDAwMAojZGVmaW5lIGxsIGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbGwgcHBvd1tNQVgrMV07CmxsIGgxW01BWCsxXTsKbGwgaDJbTUFYKzFdOwpzdHJpbmcgczEsIHMyOwoKaW50IG1haW4oKSAKewogICAgcHBvd1swXSA9IDE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IE1BWCsxOyArK2kpCiAgICAgICAgcHBvd1tpXSA9IChwcG93W2ktMV0gKiBQQikgJSBNT0Q7CiAgICBjaW4gPj4gczE7IGNpbiA+PiBzMjsKCWludCBsMSA9IHMxLnNpemUoKSwgbDIgPSBzMi5zaXplKCk7CiAgICBoMVswXSA9IHMxWzBdOwogICAgLy9jb3V0IDw8IGgxWzBdIDw8ICIgIjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbDE7ICsraSkKICAgIHsKICAgICAgICBoMVtpXSA9ICgoKGgxW2ktMV0gKiBQQikgJSBNT0QpICsgczFbaV0pICUgTU9EOwogICAgICAgIC8vY291dCA8PCBoMVtpXSA8PCAiICIgOwogICAgfQogICAgLy9jb3V0IDw8ICdcbic7IAogICAgaDJbMF0gPSBzMlswXTsKICAgIC8vY291dCA8PCBoMlswXSA8PCAiICI7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IGwyOyArK2kpCiAgICB7CiAgICAgICAgaDJbaV0gPSAoKChoMltpLTFdICogUEIpICUgTU9EKSArIHMyW2ldKSAlIE1PRDsKICAgICAgICAvL2NvdXQgPDwgaDJbaV0gPDwgIiAiIDsKICAgIH0KICAgIC8vY291dCA8PCAnXG4nOyAKICAgIGludCBhbnMgPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbDE7ICsraSkKICAgIHsKICAgICAgICBpZiAobDEgJSBpID09IDAgJiYgbDIgJSBpID09IDApCiAgICAgICAgewogICAgICAgICAgICBib29sIGZsYWcgPSB0cnVlOwogICAgICAgICAgICBsbCB0ZW1wID0gaDFbaS0xXTsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsMTsgaiA9IGogKyBpKQoJCQl7CgkJCQlpZiAoIWopCgkJCQl7CgkJCQkJaWYgKHRlbXAgIT0gaDFbaitpLTFdKQoJCQkJCQlmbGFnID0gZmFsc2U7CgkJCQkJCgkJCQl9CQogICAgICAgICAgICAgICAgZWxzZSBpZiAodGVtcCAhPSAoKGgxW2oraS0xXSAtICgoKCgoaDFbai0xXSAqIHBwb3dbaV0pICUgTU9EKSkgJSBNT0QpICsgTU9EKSAlIE1PRCkpKQogICAgICAgICAgICAgICAgICAgIGZsYWcgPSBmYWxzZTsJCQoJCQl9CQkKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsMjsgaiA9IGogKyBpKQogICAgICAgICAgICB7CgkJCQlpZiAoaSA9PSA0KQoJCQkJCWNvdXQgPDwgKChoMltqK2ktMV0gLSAoKCgoKGgyW2otMV0gKiBwcG93W2ldKSAlIE1PRCkpICUgTU9EKSArIE1PRCkgJSBNT0QpKSA8PCAiICIgPDwgImNoZWNrIiA8PCAnXG4nOwoJCQkJaWYgKCFqKQoJCQkJewoJCQkJCWlmICh0ZW1wICE9IGgyW2oraS0xXSkKCQkJCQkJZmxhZyA9IGZhbHNlOwoJCQkJfQkKICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlbXAgIT0gKChoMltqK2ktMV0gLSAoKCgoKGgyW2otMV0gKiBwcG93W2ldKSAlIE1PRCkpICUgTU9EKSArIE1PRCkgJSBNT0QpKSkKICAgICAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYW5zICs9IGZsYWc7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBhbnM7CiAgICByZXR1cm4gMDsKfQ==