题目1493:公约数个数
/*
*/
#include<stdio.h>
#include<math.h>
int maxYS(int a,int b){
if(b==0) return a;
else
return maxYS(b,a%b);
}
int main()
{
int i,n,m,cnt;
//freopen("G:\\in.txt","r",stdin);
while(scanf("%d%d",&n,&m)!=EOF){
int tmp=maxYS(n,m);
int bd=(int)sqrt(tmp)+1; //注意开根号后是浮点数,要强制转换成整型~
cnt=0;
for(i=1;i<bd;i++){ //i不能从0开始,除以0必是溢出,非法。。。
if(tmp%i==0){ //能否整除,整除才是约数
if(i*i==tmp) //开根号正好是整数,此时只有一个约数。
cnt+=1;
else
cnt+=2;
}
}
printf("%d\n",cnt);
}
return 0;
}