# 2043
# 2114 解法 X,Yについて素因数分解をする．お互いに共通の素因数の数＋１が答えになるのでは？
# 約数はどっちにしても素因数もしくはその倍数になる．互いに素な共役数で素因数と合成数の両方を持つことはできないので
# 共通な素因数をたし上がればいい
# 実装
def prime_fac(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a

X, Y = map(int,input().split())
X_prime = set(prime_fac(X))
Y_prime = set(prime_fac(Y))
Common = X_prime & Y_prime
print(1+len(Common))
 def prime_fac(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a prime_fac a = [] a [] while n % 2 == 0:
        a.append(2)
        n //= 2
     n % 2 == 0 n % 2 n 2 0 a.append(2) a.append a append 2 n //= 2 n 2 f = 3 f 3 while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
     f * f <= n f * f f f n if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
     n % f == 0 n % f n f 0 a.append(f) a.append a append f n //= f n f f += 2 f 2 if n != 1:
        a.append(n)
     n != 1 n 1 a.append(n) a.append a append n return a a n n X, Y = map(int,input().split()) X map(int,input().split()) map int input().split() ().split () input split Y X_prime = set(prime_fac(X)) X_prime set(prime_fac(X)) set prime_fac(X) prime_fac X Y_prime = set(prime_fac(Y)) Y_prime set(prime_fac(Y)) set prime_fac(Y) prime_fac Y Common = X_prime & Y_prime Common X_prime & Y_prime X_prime Y_prime print(1+len(Common)) print 1+len(Common) 1 len(Common) len Common Common = X_prime & Y_prime X_prime & Y_prime Common X_prime = set(prime_fac(X)) set(prime_fac(X)) X_prime def prime_fac(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a def prime_fac(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a prime_fac Y_prime = set(prime_fac(Y)) set(prime_fac(Y)) Y_prime X, Y = map(int,input().split()) map(int,input().split()) X Y = map(int,input().split()) map(int,input().split()) Y
# 2043
# 2114 解法 X,Yについて素因数分解をする．お互いに共通の素因数の数＋１が答えになるのでは？
# 約数はどっちにしても素因数もしくはその倍数になる．互いに素な共役数で素因数と合成数の両方を持つことはできないので
# 共通な素因数をたし上がればいい
# 実装
def prime_fac(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a

X, Y = map(int,input().split())
X_prime = set(prime_fac(X))
Y_prime = set(prime_fac(Y))
Common = X_prime & Y_prime
print(1+len(Common))

