问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:num.cpp
*作 者:单昕昕
*完成日期:2014年12月12日
*版 本 号:v1.0
*
*问题描述:从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。
*程序输入:输入包括一行。 两个以空格分开的正整数。
*程序输出:两个整数的最小公倍数和最大公约数。
*/
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
return (a%b!=0?(gcd(b,a%b)):b);
}
int lcm(int u,int v)
{
int h;
h=gcd(u,v);
return(u*v/h);
}
int main()
{
int n,m,gys,gbs;
int gcd(int a, int b);
int lcm(int a, int b);
cin>>n>>m;
gys=gcd(n,m);
gbs=lcm(n,m);
cout<<gbs<<" "<<gys<<endl;
return 0;
}
运行结果:
知识点总结:
求最大公约数和最小公倍数。
学习心得:
会求最大公约数之后,最小公倍数直接利用最大公约数来求。