• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wchenfeng

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Java用辗转相除法求两个整数的最大公约数

按照欧几里得(Euclid)的辗转相除法,gcd(a,b)有以下的性质: 

  1. gcd(a,b)=gcd(b,a)
  2. gcd(a,b)=gcd(-a,b)
  3. gcd(a,0)=|a|
  4. gcd(a,b)=gcd(b,a%b),0<=a%b<b

 

 输入:

12
18

package com;
import java.io.*;
public class app4_9 {
    public static void main(String[] args)throws IOException
    {
        int a,b,k;
        String str1,str2;
        BufferedReader buf;
        buf=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请输入第一个数a=");
        str1=buf.readLine();
        a=Integer.parseInt(str1);
        System.out.println("请输入第二个数b=");
        str2=buf.readLine();
        b=Integer.parseInt(str2);
        System.out.print("gcd("+a+","+b+")=");
        do{
            k=a%b;
            a=b;
            b=k;
        }while(k!=0);
        System.out.println(a);
    }
}

posted on 2022-04-12 20:02  王陈锋  阅读(164)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3