function factorization(a){
    var workbench=a;
    var i=2;
    var ret=[];
    while(a>1){
        if(workbench%i===0){
            ret.push(i);
            workbench/=i;
            continue;
        }
        if(i**2>workbench){
            ret.push(workbench);
            break;
        }
        i++;
    }
    return ret;
}

function Main(input) {
  input=input.split("\n");
  if(input[input.length-1]===''){
    input.pop();
  }
  const A=input[0].split(' ')[0]-0;
  const B=input[0].split(' ')[1]-0;
  var min=Math.min(A,B);
  var max=Math.max(A,B);
  var temp;
  while(min>0){
    temp=min;
    min=max%min;
    max=temp;
  }
  var ret=0;
  var previous=0;
  factorization(max).forEach(e=>{
    if(e!==previous){
      previous=e;
      ret++;
    }
  });
  console.log(ret+1);
}




//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));