java for循环与if语句结合 通过辗转相除求 最大公约数和最小公倍数

来源:互联网 发布:网易邮箱大师mac版 编辑:程序博客网 时间:2024/06/05 06:41
/* *     【程序6】     题目:输入两个正整数numberA和numberB,求其最大公约数和最小公倍数。     1.程序分析:利用辗转相除法。    举例:    84  40    84/40=2.。。4    40/4=10.。。0    最大公约数 为4    最小公倍数为84*40/4=840      */package JavaForPracticeDay5;import java.util.Scanner;public class Program6 {    public static void main(String[] args) {        //输入数据numberA  numberB        Scanner sc = new Scanner(System.in);        System.out.println("请输入两个数字:");        int numberA = sc.nextInt();        int numberB = sc.nextInt();        //最大公因数             //最小公倍数        int b =0;//进行换算        int c =0;        int d = numberA;//保留numberA和numberB的值        int e = numberB;        for(int i = 0;;i++) {            if(numberA>numberB) {//大的数字/小的数字的余数  代替小的数字    小的数字代替大的数字                b=numberB;                numberB=numberA%numberB;                numberA=b;                if(numberB==0) {                    System.out.println("最大公因数是:"+numberA);                    c=d*e/numberA;                    System.out.println("最小公倍数是:"+c);                    break;                }                if(numberB==1) {                    System.out.println("最大公因数是:"+numberB);                    c=d*e;                    System.out.println("最小公倍数是:"+c);                    break;                }            }else {                b=numberA;                numberA=numberB%numberA;                numberB=b;                if(numberA==0) {                    System.out.println("最大公因数是:"+numberB);                    c=d*e/numberB;                    System.out.println("最小公倍数是:"+c);                    break;                }                if(numberB==1) {                    System.out.println("最大公因数是:"+numberA);                    c=d*e;                    System.out.println("最小公倍数是:"+c);                    break;                }            }        }           }}
阅读全文
1 0
原创粉丝点击