求最大公约数

1,累除法
import java.util.Scanner;

public class Gcd {
    public static void main(String[]args) {
        Scanner rd = new Scanner(System.in);
        int m;
        System.out.println("请输入m的值");
        m = rd.nextInt();//输入一个数
        int n;
        System.out.println("请输入n的值");
        n = rd.nextInt();//输入第二个数
        int x;
        if(m<n){//判断m和n的大小
            m=n;
        }
        if(m%n==0){//判断最大公约数是否是n本身
            x=n;
            System.out.println(x);
        }
        else {
            for (int i=0;m%n!=0;i++) {//用m对n取余
                x = m % n;
                m = n;
                n = x;
                System.out.println("最大公约数是" + x);
            }
        }
    }
}

2,整除法

import java.util.Scanner;

public class Gcd {
    public static void main(String[]args){
        int m;
        int n;
        Scanner rd=new Scanner(System.in);
        System.out.println("请输入m的值");
        m= rd.nextInt();
        System.out.println("请输入n的值");
        n= rd.nextInt();
        int x=0;
        if(m<n){//判断m与n的大小
            m=n;
        }
        while (x<=n){//在1到n这个区间找
            x++;
            if(m%x==0&&n%x==0){//既被m整除又被n整除
                System.out.println(x);
            }
        }
    }
}

3,累减法

import java.util.Scanner;
public class Gcd {
    public static void main(String[]args){
        int m;
        int n;
        Scanner rd=new Scanner(System.in);
        System.out.println("请输入m的值");
        m= rd.nextInt();
        System.out.println("请输入n的值");
        n= rd.nextInt();
        while (m!=n){//求差,一直减到m=n时就是最大公因数
            if(m>n){
                m=m-n;
            }
            else {
                n=n-m;
            }
            System.out.println(m);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值