def prime_factors(n):       # 戻り値はiterable type
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            yield i             # whileループを進めるごとにイテレータに値を貯め続ける
    if n > 1:
        yield n

A, B = map(int, input().split())

data = set(prime_factors(A)) & set(prime_factors(B))
print(len(data) + 1) def prime_factors(n):       # 戻り値はiterable type
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            yield i             # whileループを進めるごとにイテレータに値を貯め続ける
    if n > 1:
        yield n prime_factors i = 2 i 2 while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            yield i             # whileループを進めるごとにイテレータに値を貯め続ける
     i * i <= n i * i i i n if n % i:
            i += 1
        else:
            n //= i
            yield i             # whileループを進めるごとにイテレータに値を貯め続ける
     n % i n i i += 1 i 1 n //= i n i yield i i if n > 1:
        yield n n > 1 n 1 yield n n n n A, B = map(int, input().split()) A map(int, input().split()) map int input().split() ().split () input split B data = set(prime_factors(A)) & set(prime_factors(B)) data set(prime_factors(A)) & set(prime_factors(B)) set(prime_factors(A)) set prime_factors(A) prime_factors A set(prime_factors(B)) set prime_factors(B) prime_factors B print(len(data) + 1) print len(data) + 1 len(data) len data 1 data = set(prime_factors(A)) & set(prime_factors(B)) set(prime_factors(A)) & set(prime_factors(B)) data A, B = map(int, input().split()) map(int, input().split()) A B = map(int, input().split()) map(int, input().split()) B def prime_factors(n):       # 戻り値はiterable type
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            yield i             # whileループを進めるごとにイテレータに値を貯め続ける
    if n > 1:
        yield n def prime_factors(n):       # 戻り値はiterable type
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            yield i             # whileループを進めるごとにイテレータに値を貯め続ける
    if n > 1:
        yield n prime_factors
def prime_factors(n):       # 戻り値はiterable type
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            yield i             # whileループを進めるごとにイテレータに値を貯め続ける
    if n > 1:
        yield n

A, B = map(int, input().split())

data = set(prime_factors(A)) & set(prime_factors(B))
print(len(data) + 1)
