C/C++经典程序训练1---最大公约数与最小公倍数
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入两个整数,求它们的最大公约数与最小公倍数。
输入
输入两个整数,两个整数之间用空格分开。
输出
第一行输出最大公约数; 第二行输出最小公倍数。
示例输入
6448
示例输出
16192
此题虽然简单,但是要掌握应用的辗转相除法
#include <stdio.h> int main() { int a,b,t,r,a1,b1,z; scanf("%d %d",&a,&b);//输入两个数 if(a>b) { t=a; a=b; b=t; }//为两个数由小到大排序 a1=a; b1=b; r=b%a;//r为b除以a的余数 while(r!=0) { b=a; a=r; r=b%a; }//辗转相除法求最大公约数 printf("%d\n",a); z=a1*b1; printf("%d\n",z/a);//两个数的最小公倍数 为它们的乘积 除以 它们的最大公约数 return 0; }