黑马程序员技术交流社区

标题: 求最大公约数和最小公倍数 [打印本页]

作者: hsx500    时间: 2015-5-8 11:01
标题: 求最大公约数和最小公倍数
题目:输入两个正整数mn,求其最大公约数和最小公倍数。

请批评,指正,改进!

思路:
和求质因数的思路很相似,求出共同的质因数后,相乘,得最大公约数,m*n = 最大公约数*最小公倍数,最小公倍数可以求得
步骤:
1.定义,m,n,除数k,储存累乘的积s
2.构建while循环,终止条件是m或n小于除数
3.构建两个if判断,用取模运算求得因数
int m,n,s;
s = 1;
int k = 2;
while( m> = k && n>=k)
{
    if(m%k==0 && n%k==0)
      s = k*s;
    if(m%k!=0 || m%k !=0)
      k++;   
}
    s.o.p(最大公约数 s,最小公倍数 m*n/s);


作者: Huylens    时间: 2015-5-8 11:36
我的思路刚好是跟你反过来的。思路是:假设有两个整数m和n,然后,找出两个数中的最小数,这里我假设是最小数是n,然后用n作为因数的起点i,用m和n分别去除,如果能够整除,那么最大的公约数马上就出来,如果不能相除,然后i--,再来整除,用递归可以找出最大公约数。
作者: roblonely    时间: 2015-5-8 11:38
就是一个数学问题,根据公式套用就行
作者: 黄文昭    时间: 2015-5-8 21:34
你这至少把代码补全吧! 输出都是简写的,还没有定义输出的方法,这个能打印出来么?
作者: hsx500    时间: 2015-5-10 12:32
黄文昭 发表于 2015-5-8 21:34
你这至少把代码补全吧! 输出都是简写的,还没有定义输出的方法,这个能打印出来么? ...

好懒不想全部写出来 T T
是不是不适合当程序员。。。
作者: lingdu    时间: 2015-5-10 12:40
学习了,多练习总是好的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2