View Code of Problem 3836

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int gcd(int a,int b){
	int c;
	//printf("%d %d\n",a,b);
	while(a%b!=0){
		c=a%b;
		a=b;
		b=c;
	}
	//printf("b===%d\n",b);
	return b;
}

int main(){
	int g,l;
	while(scanf("%d %d",&g,&l)!=EOF){
		int sum=g*l;
		int min=2000;
		int pos=0;
		int count=0;
		for(int i=g;i<=sqrt(g*l);i++){
			if(sum%i==0&&gcd(i,sum/i)==g){
				if(min>sum/i+i){
					min=sum/i+i;
					pos=i;
				}
			}
		}
		printf("%d %d\n",pos,sum/pos);
	}	
}



	

Double click to view unformatted code.


Back to problem 3836