杭电ACM上有相关的试题,通过搜集资料得出笔记。
来源:http://www.2cto.com/kf/201304/206724.html , http://blog.sina.com.cn/s/blog_676370130101b66r.html
求最大公约数一般采用欧几里德算法。 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数。
再通过公式:两个数相乘等于这两个数的最大公约数和最小公倍数的积。求出最小公倍数
以下是我的代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner kb=new Scanner(System.in);
while(kb.hasNext()){
int n=kb.nextInt();
int m=kb.nextInt();
if(n<m){
int temp=m;
m=n;
n=temp;
}
System.out.println("最大公约数:"+fact(n,m));
System.out.println("最小公倍数:"+n*m/fact(n,m));
}
}
public static int fact(int n,int m){
while(n%m!=0){
int temp=n%m;
n=m;
m=temp;
}
return m;
}
}