求两个数的最小公约数和最小公倍数
来源:互联网 发布:全球社交软件用户数量 编辑:程序博客网 时间:2024/05/19 04:07
题目:
求两个数的最小公约数和最小公倍数
思路:
求最大公约数: 欧几里得在其《几何原本》中提出的欧几里得算法,有称辗转相除法,
具体做法是如果q和r分别是m除以n的商及玉树,m=nq+r,那么m和n的最大公约数等于n和
r的最大公约数
具体做法是如果q和r分别是m除以n的商及玉树,m=nq+r,那么m和n的最大公约数等于n和
r的最大公约数
求最小公倍数:最小公倍数等于a*b/他们的最大公约数
代码实现:
package com.chenyu.zuo.other;/** * @author Think */public class Gcd { /**欧几里得在其《几何原本》中提出的欧几里得算法,有称辗转相除法, * 具体做法是如果q和r分别是m除以n的商及玉树,m=nq+r,那么m和n的最大公约数等于n和 * r的最大公约数,下面是递归实现 * @param a * @param b * @return */ public int gcd1(int a,int b){ return b==0?a:gcd1(b,a%b); } /** * 不用递归实现 * @param a * @param b * @return */ public int gcd2(int a,int b){ int temp=0; while(b!=0){ temp=a%b; a=b; b=temp; } return a; } /**求最小公倍数 * 最小公倍数等于a*b/他们的最大公约数 * @param a * @param b * @return */ public int lcm(int a,int b){ int gcd=gcd1(a,b); return (a*b)/gcd; } public static void main(String[] args) { Gcd gcd=new Gcd(); System.out.println("第一种方法求最大公约数"+gcd.gcd1(12, 6)); System.out.println("第二种方法求最大公约数"+gcd.gcd2(12, 9)); System.out.println("最小公倍数"+gcd.lcm(3, 7));}}
运行结果:
第一种方法求最大公约数6第二种方法求最大公约数3最小公倍数21
0 0
- 求两个数的最小公约数和最小公倍数
- 关于求两个数的最小公约数和最小公倍数问题【经典算法】!
- 求两个数的公约数
- 最小公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数?
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 10019---JavaScript--闭包
- 安卓动画
- 经验之谈—KVC(forKey,forKeyPath)
- VS2010 MFC windows API 串口编程(一)
- C语言总结
- 求两个数的最小公约数和最小公倍数
- 表单Form提交数据和PHP数据处理
- js-----BOM/window对象
- 【NodeJs】NodeJs中base16转码
- 开心一下
- mysql优化学习笔记
- 初识IO流
- 4-7 UVA 509 RAID!
- 获取指定数量素数.