View Code of Problem 3836

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define  inf 1000000
 int gcd(const  int a,const  int b){
	return b?gcd(b,a%b):a;
}
int main(){
	int a,b,i,k1,k2;
	while(scanf("%d %d",&a,&b)){
		int min=inf;
	for(i=a;i<=sqrt(a*b);i++)
		{
		if(b%i==0&&gcd(i,a*b/i)==a){
	    int s=i+a*b/i;
	    if(s<min)
	    {
		min=s;
	    k1=i;
	    k2=a*b/i;
	}
	}
	}
	printf("%d %d\n",k1,k2);
}
}

Double click to view unformatted code.


Back to problem 3836