游客 Signup | Login
中文 | En

1210 - C语言8.13

写两个函数,分别求两个整数的最大公约数和最小公倍数。用主函数分别调用这两个函数,并输出结果。

Input

两个用空格隔开的正整数,保证二者的值均不超过10000。

Output

输出两个正整数的最大公约数和最小公倍数,用空格隔开。

请注意行尾输出换行。

Examples

Input

24 10

Output

2 120

Solution C

#include<stdio.h>
int f(int a,int b)
{
	int x,y,r;
	x=a>=b?a:b;
	y=a<=b?a:b;
	r=x%y;
	while(r!=0)
	{
		x=y;
		y=r;
		r=x%y;
	}
	return y;
     
}
int g(int a,int b)
{
	int t=f(a,b);
	return (a*b)/t;
}
int main(void)
{
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d %d\n",f(a,b),g(a,b));
	return 0;
}

Solution C++

#include <stdio.h>
int main() {
	int gcd(int a, int b);
	int lcm(int a, int b);
	int a, b;
	scanf("%d%d", &a, &b);
	printf("%d %d\n", gcd(a, b), lcm(a, b));
	return 0;
}
int gcd(int a, int b) {
	int temp;
	while (b != 0) {
		temp = a % b;
		a = b;
		b = temp;
	}
	return a;
}
int lcm(int a, int b) {
	return a / gcd(a, b) * b;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题