求公约数与公倍数(关于重载的方法)
一个关于求a 和b的最大公约数与最小公倍数;
问题:假如输入 3和7,为何不能求出最小公倍数???
package package1;
import java.util.Scanner;
class 最大公约数{
public int f(int a,int b){
if(a<b){
int m;
m=a;
a=b;
b=m;
}
if(a%b==0) return b;
else return f(b,a%b);
}
}
public class 最小公倍数 extends 最大公约数{
public int f(int a,int b){
int m;
m=super.f(a,b);
System.out.println(m);
return ((a*b)/m);
}
public static void main(String[] args) {
最大公约数 gcd=new 最大公约数();
最小公倍数 gcd1=new 最小公倍数();
Scanner sc1=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
System.out.println("请输入两个正整数:");
int a=sc1.nextInt();
int b=sc2.nextInt();
int m=gcd.f(a, b);
System.out.println(a+"和"+b+"的最大公约数为:"+m);
int n=gcd1.f(a, b);
System.out.println(a+"和"+b+"的最小公倍数为:"+n);
}
}
假如输入 3和7,为何不能求出最小公倍数???
------解决方案--------------------