- 建立一个类,在类里面完成对两个数求最大公约数和最小公倍数。最大公约数可以用辗转相除法直到两数的余数为0,即可得到两个数的最大公约数。而最小公倍数就可以直接让两个数相乘,再除以最大公约数。这里要注意,在求最大公约数的时候,两个数的值都发生了改变,所以我们要用其他的两个变量将两个数一开始的值存起来,再来进行求最大公约数。最后再用两个函数返回最大公约数和最小公倍数的值即可。
public class beishu { int a,b,m,n,c; public beishu(int a,int b) { this.a=a; this.b=b; m=a; n=b; } public void Compare() { while(b!=0) { c=a%b; a=b; b=c; } } public int getyue() { return a; } public int getbei() { return m*n/a; } }
- 主函数主要难点在于要输入,我用的是Scanner函数,但是再用函数之前要先在开头加上import java.util.Scanner;否则就会报错。这里最好还是将输入的两个数进行比较,把较大的数放在第一个变量,就可以直接引用求最大公约数的函数了。然后输出最大公约数,和最小公倍数即可。
import java.util.Scanner; public class beishumain { public static void main(String[] args) { // TODO Auto-generated method stub int a,b,i; System.out.println("请输入想要比较的数:"); Scanner sc=new Scanner(System.in); a=sc.nextInt(); b=sc.nextInt(); if(a<b) { i=a; a=b; b=i; } beishu c1=new beishu(a,b); c1.Compare(); System.out.println(c1.getyue()); System.out.println(c1.getbei()); } }
- 实验结果为