def f(a,b):
    if b:return f(b,a%b)
    p=set()
    for i in range(2,int(a**0.5)+1):
        while True:
            if a%i==0:
                a//=i
                p.add(i)
            else:
                break
    if a!=1:
        return len(p)+2
    return len(p)+1
print(f(*map(int,input().split()))) def f(a,b):
    if b:return f(b,a%b)
    p=set()
    for i in range(2,int(a**0.5)+1):
        while True:
            if a%i==0:
                a//=i
                p.add(i)
            else:
                break
    if a!=1:
        return len(p)+2
    return len(p)+1 f if b:return f(b,a%b)
     b p=set() p set() set for i in range(2,int(a**0.5)+1):
        while True:
            if a%i==0:
                a//=i
                p.add(i)
            else:
                break
     i range(2,int(a**0.5)+1) range 2 int(a**0.5)+1 int(a**0.5) int a**0.5 a 0.5 1 while True:
            if a%i==0:
                a//=i
                p.add(i)
            else:
                break
     True if a%i==0:
                a//=i
                p.add(i)
            else:
                break
     a%i==0 a%i a i 0 a//=i a i p.add(i) p.add p add i break if a!=1:
        return len(p)+2
     a!=1 a 1 return len(p)+2 len(p)+2 len(p) len p 2 return len(p)+1 len(p)+1 len(p) len p 1 a a b b print(f(*map(int,input().split()))) print f(*map(int,input().split())) f *map(int,input().split()) map(int,input().split()) map int input().split() ().split () input split def f(a,b):
    if b:return f(b,a%b)
    p=set()
    for i in range(2,int(a**0.5)+1):
        while True:
            if a%i==0:
                a//=i
                p.add(i)
            else:
                break
    if a!=1:
        return len(p)+2
    return len(p)+1 def f(a,b):
    if b:return f(b,a%b)
    p=set()
    for i in range(2,int(a**0.5)+1):
        while True:
            if a%i==0:
                a//=i
                p.add(i)
            else:
                break
    if a!=1:
        return len(p)+2
    return len(p)+1 f
def f(a,b):
    if b:return f(b,a%b)
    p=set()
    for i in range(2,int(a**0.5)+1):
        while True:
            if a%i==0:
                a//=i
                p.add(i)
            else:
                break
    if a!=1:
        return len(p)+2
    return len(p)+1
print(f(*map(int,input().split())))