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; }