小学学过一种求两个数m和n的最大公约数:
1.找到m的所有质因数;
2.找到n的所有质因数;
3.从第一步和第二步求得的质因数分解式中找出所有的公因数;
4.将第三步中找到的质因数相乘,其结果作为给定数字的最大公约数。
刚开始想用两个单链表分别存储m和n的质因数,但是不能很好的找到公因数,求大师指点......
数学 最大公约数 编程
------解决方案--------------------
package exercise;
import java.util.Scanner;
public class Exercise_10_02 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int min; int max;
System.out.print("请输入一个数:");
min= sc.nextInt();
System.out.print("请输入另一个数:");
max= sc.nextInt();
System.out.println("最大公约数为:"+gongyue(min, max));
}
public static int gongyue(int min, int max) {
while(max%min!=0){
int temp=max%min;
max=min;
min=temp; }
return min;
}
}
------解决方案--------------------
分别求出m,n的公因数,找相同的因数相乘,求的是最小公倍数的
可以用for循环。