'use strict'
function Main(input) {
    let Nums = input.trim().split(' ').map(x => x*1);
  	// 2数の最大公約数を求める関数を書いてみる	
  	let gcd = (n1,n2)=>{
      return n2 == 0 ? n1 : gcd(n2 , n1 % n2);
    }
    
    let targetNum = gcd(Nums[0],Nums[1]);
  	let ansNums = new Set();
  	
  	// 1を対象の列に加える処理
  	ansNums.add(1);
  
  	// 素因数分解（人のコードを拝借）
    let primeFactorization = (targetNum) => {
        for (let i = 2; i <= targetNum; i++){
            if(i == targetNum){
              	ansNums.add(i);
                break;
            }
            if(parseInt(targetNum/i) - targetNum/i == 0){
                ansNums.add(i);
                primeFactorization(targetNum/i);
                break;
            }
        }
    }
    
    // 素因数分解の実装
	primeFactorization(targetNum);
  
  	// 回答の出力
   	console.log(ansNums.size);
}


Main(require("fs").readFileSync("/dev/stdin", "utf8"));
