#　解説確認後
#　参考サイト「けんちょんの競プロ精進記録」
#　URL: https://atcoder.jp/contests/abc142/tasks/abc142_d

import math
def prime_factorize(n): # 素因数分解
    p = 2
    res = []
    while p*p <= n:
        if n % p: # 割り切れない
            p += 1
            continue
        num = 0
        while n % p == 0:
            n //= p
            num += 1
        res.append((p,num))
        p += 1
    if n != 1: res.append((n,1))
    return res

a,b = map(int,input().split())

G = math.gcd(a,b) # 最大公約数

pl = prime_factorize(G)

print(len(pl)+1) # 1+n個なので import math math def prime_factorize(n): # 素因数分解
    p = 2
    res = []
    while p*p <= n:
        if n % p: # 割り切れない
            p += 1
            continue
        num = 0
        while n % p == 0:
            n //= p
            num += 1
        res.append((p,num))
        p += 1
    if n != 1: res.append((n,1))
    return res prime_factorize p = 2 p 2 res = [] res [] while p*p <= n:
        if n % p: # 割り切れない
            p += 1
            continue
        num = 0
        while n % p == 0:
            n //= p
            num += 1
        res.append((p,num))
        p += 1
     p*p <= n p*p p p n if n % p: # 割り切れない
            p += 1
            continue
         n % p n p p += 1 p 1 continue num = 0 num 0 while n % p == 0:
            n //= p
            num += 1
         n % p == 0 n % p n p 0 n //= p n p num += 1 num 1 res.append((p,num)) res.append res append (p,num) p num p += 1 p 1 if n != 1: res.append((n,1))
     n != 1 n 1 return res res n n a,b = map(int,input().split()) a map(int,input().split()) map int input().split() ().split () input split b G = math.gcd(a,b) G math.gcd(a,b) math.gcd math gcd a b pl = prime_factorize(G) pl prime_factorize(G) prime_factorize G print(len(pl)+1) print len(pl)+1 len(pl) len pl 1 b = map(int,input().split()) map(int,input().split()) b pl = prime_factorize(G) prime_factorize(G) pl a,b = map(int,input().split()) map(int,input().split()) a G = math.gcd(a,b) math.gcd(a,b) G def prime_factorize(n): # 素因数分解
    p = 2
    res = []
    while p*p <= n:
        if n % p: # 割り切れない
            p += 1
            continue
        num = 0
        while n % p == 0:
            n //= p
            num += 1
        res.append((p,num))
        p += 1
    if n != 1: res.append((n,1))
    return res def prime_factorize(n): # 素因数分解
    p = 2
    res = []
    while p*p <= n:
        if n % p: # 割り切れない
            p += 1
            continue
        num = 0
        while n % p == 0:
            n //= p
            num += 1
        res.append((p,num))
        p += 1
    if n != 1: res.append((n,1))
    return res prime_factorize
#　解説確認後
#　参考サイト「けんちょんの競プロ精進記録」
#　URL: https://atcoder.jp/contests/abc142/tasks/abc142_d

import math
def prime_factorize(n): # 素因数分解
    p = 2
    res = []
    while p*p <= n:
        if n % p: # 割り切れない
            p += 1
            continue
        num = 0
        while n % p == 0:
            n //= p
            num += 1
        res.append((p,num))
        p += 1
    if n != 1: res.append((n,1))
    return res

a,b = map(int,input().split())

G = math.gcd(a,b) # 最大公約数

pl = prime_factorize(G)

print(len(pl)+1) # 1+n個なので