View Code of Problem 102

#include<stdio.h>
#include<math.h>
int gbs(int a,int b){
   int t,i;
	if(a>b)
	{
		t=a;
		a=b;
		b=t;
	}
	if(b%a==0)
	return b;
	for( i=b;i<=a*b;i++)
	if(i%a==0&&i%b==0)
	break;
	return i;
}
int gys(int a,int b){
	int t,i;
	if(a>b)
	{
		t=a;
		a=b;
		b=t;
	}
	if(b%a==0)
	return a;
	for(i=a;i>0;i--)
	if(b%i==0&&a%i==0)
	return i;
}
int main(){
	int a,b,i,j,c;
	while(scanf("%d %d",&a,&b)!=EOF){
		c=0;
		for(i=a;i<=sqrt(a*b);i++){
		    for(j=b;j>=sqrt(a*b);j--)
		    if(gys(i,j)==a&&gbs(i,j)==b)
		    c++;
		}
		printf("%d\n",2*c);
	}
}

Double click to view unformatted code.


Back to problem 102