'use strict'
function Main(input) {
    let Nums = input.trim().split(' ').map(x => x*1);
  	// 最大公約数を求めるアルゴリズムは人さまから拝借
	let gcd = function(a, b) {
      if ( ! b) {
          return a;
      }

      return gcd(b, a % b);
	};
  	// 最大公約数
	let x = gcd(Nums[0],Nums[1]);
  	// 素因数分解(このアルゴリズムも拝借) 
  	let a = function pf(n) {
      let result = [];
      if (n === 1) {
          return [1];
      }
      let init = 2;
      while ( n !== 1 ) {
          let i = init;
          while (i < Number.MAX_SAFE_INTEGER) {
              if (n % i == 0) {
                  result.push(i)
                  n /= i;
                  break;
              }
              i++;
          }
          init = i;
      }
      return result;
	}
  
    // 重複を取り除くためにセットに値を変換
    let set = new Set(a(x));
  	let ans = set.size;
  
  	// 互いに素だった時の処理
  	if(set.size != 1) {ans += 1}
  	console.log(ans);
}


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