最大公约数与最小公倍数。题目内容:编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。
输入格式:输入均不为0的整数n和m(n与m的乘积还在整数范围内)(两数之间用英文,隔开)
输出格式:输出这两个整数的最大公约数和最小公倍数(两结果之间用英文,隔开)
输入样例:24,36
输出样例:12,72
输入样例:-48,128
输出样例:16,-384
时间限制:500ms内存限制:32000kb
输入格式:输入均不为0的整数n和m(n与m的乘积还在整数范围内)(两数之间用英文,隔开)
输出格式:输出这两个整数的最大公约数和最小公倍数(两结果之间用英文,隔开)
输入样例:24,36
输出样例:12,72
输入样例:-48,128
输出样例:16,-384
时间限制:500ms内存限制:32000kb
#include
int gcd(int a,int b) { if(a<0) a=-a; if(b<0) b=-b; return b==0?a:gcd(b,a%b); } int lcm(int a,int b,int p) { return (a*b)/p; } int main() { int a,b; int p,q; scanf("%d,%d",&a,&b); p = gcd(a,b); q = lcm(a,b,p); printf("%d,%d",p,q); }
int gcd(int a,int b) { if(a<0) a=-a; if(b<0) b=-b; return b==0?a:gcd(b,a%b); } int lcm(int a,int b,int p) { return (a*b)/p; } int main() { int a,b; int p,q; scanf("%d,%d",&a,&b); p = gcd(a,b); q = lcm(a,b,p); printf("%d,%d",p,q); }
举一反三
内容
- 0
编写函数,分别求两个整数的最大公约数和最小公倍数,并用主程序调用这个函数,然后输出结果。约定最大公约数为正整数
- 1
编写函数,输入两个整数m和n,求最大公约数和最小公倍数。
- 2
接收用户从键盘上输入的两个整数,求两个数的最大公约数和最小公倍数,并输出。
- 3
课后习题 3-10 编写函数求两个整数的最大公约数和最小公倍数。提示:最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号。
- 4
输入两个整数,求其最大公约数和最小公倍数