//パラメータ値の最大公約数を求める式
function gcd(a, b) {
    if (b === 0){
        return a
    }
    return gcd(b, a % b)
}
function Main(input){
  input = input.split("\n");
  inputStr = input[0].split(" ");
  var A = Number.parseInt(inputStr[0]);
  var B = Number.parseInt(inputStr[1]);
  var gdc_val = gcd(A,B);
      
  //回答格納用
  var ans = [];//約数を格納
  var tmp = [];//約数の数を格納
  //約数の一覧を求める
  for(var i=1 ; i<=gdc_val ; i++){
    if( gdc_val%i === 0 ){
      ans.push(i);
      tmp.push(0);
    }
  }
  
  //約数に対する素数判定
  var cnt = 0;
  for(var i=1 ; i<=ans[ans.length-1] ; i++){
    for(var j=0 ; j<ans.length ; j++){
      if(ans[j]>=i){
        if( ans[j]%i === 0 ){
          tmp[j] += 1;
          if(tmp[j]<=2){ cnt++; }
        }
      }
    }
  }
  //tmpから要素が2以下の値をカウント
  var cnt = 0;
  for(var i=0 ; i<tmp.length ; i++){
    if(tmp[i]<=2){
      cnt++;
    }
  }
  //結果出力
  console.log(cnt);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));