扩展欧几里得算法是欧几里得算法(又叫辗转相除法)的扩展。除了计算a、b两个整数的最大公约数,此算法还能找到整数x、y(其中一个很可能是负数)。
通常谈到最大公因子时, 我们都会提到一个非常基本的事实: 给予二整数 a 与 b, 必存在有整数 x 与 y 使得ax + by = gcd(a,b)。有两个数a,b,对它们进行辗转相除法,可得它们的最大公约数——这是众所周知的。
然后,收集辗转相除法中产生的式子,倒回去,可以得到ax+by=gcd(a,b)的整数解。(以上解释来自百度)

其原理就是应用反复带余除法来进行实现
直接先上代码

import java.util.Scanner;
public class oujilide{public static void main(String[] args){int a,b,c,d,s=0,t=0;/*其中a是被除数b是除数c是商d是余数*/d=1;int s1=1,s2=0,t1=0,t2=1;Scanner sc=new Scanner(System.in);a=sc.nextInt();b=sc.nextInt();int aa=a;int bb=b;while(d!=0) {c=a/b;d=a%b;s=s1-c*s2;t=t1-c*t2;if(d!=0) {a=b;b=d;s1=s2;s2=s;t1=t2;t2=t;}}System.out.println("两个整数的最大公因数为"+b);System.out.println("输出sa*tb=d的形式如下:");System.out.println("("+s2+")"+" * "+aa+" + "+bb+" * "+"("+t2+")" +" = "+b);}
}

本篇代码的流程图如下图

展示几个输出结果样例

拓展欧几里得算法java实现相关推荐

  1. 【原创】更相减损术 stein算法 欧几里得算法 拓展欧几里得算法 扩展欧几里得算法 逆元的计算与筛法 解模线性方程

    欧几里得 说在前面 数论学复习 Part 6. 然后再来一章CRT和组合数,就飞往概率,以此为跳板去向DP. 计划很美啊你. P.S. 这么说来拉格朗日插值可以说是数论学复习的Part 0了啊. 有一 ...

  2. 欧几里得算法和拓展欧几里得算法

    一.欧几里得算法(辗转相除法): 结论:gcd(a,b)=gcd(b,a%b). 证明:假设a,b的最大公约数为r,a=k1r,b=k2r(k1>k2). 则a%b=k1r-nk2r=(k1-n ...

  3. 欧几里得  拓展欧几里得算法 讲解 (Euclid Extend- Euclid Algorithm)

    欧几里得& 拓展欧几里得(Euclid & Extend-Euclid) 欧几里得算法(Euclid) 背景: 欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数.   ...

  4. 拓展 欧几里得算法 求逆元_ECC椭圆曲线加密算法:有限域和离散对数

    Hi all,我来翻译第二篇啦.若大家发现那些翻译的不够准确还望指出,不胜感激.首先放上原文链接: http://andrea.corbellini.name/2015/05/23/elliptic- ...

  5. 扩展欧几里得算法 求解 丢番图方程

    丢番图方程: 有一个或者几个变量的整系数方程,它们的求解仅仅在整数范围内进行. a * x + b * y = c  ( 其中所有数均为整数, 已知 x, y, c )        例如:鸡兔同笼问 ...

  6. 欧几里得、扩展的欧几里得算法

     最大公约数(Greatest Common Divisor) 欧几里得算法: 定理1:设a,b,c,q都为整数,且b>0.如果 a = q b+c,那么 gcd(a, b) = gcd(b, ...

  7. 用欧几里得算法求最大公约数_欧几里得算法:GCD(最大公约数),用C ++和Java示例解释...

    用欧几里得算法求最大公约数 For this topic you must know about Greatest Common Divisor (GCD) and the MOD operation ...

  8. java实现rsa欧几里得算法求d_RSA 加密算法的 java 实现

    一.RSA 介绍 以下引自百度百科 RSA 是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当 ...

  9. 如何利用扩展欧几里得算法求解不定方程_欧几里德算法、拓展欧几里德、中国剩余定理...

    01.欧几里德算法(Euclidean algorithm)(辗转相除法) 欧几里德算法又称辗转相除法,主要是用于计算两个整数a,b的最大公约数. 简单点说一下算法原理:两个整数的最大公约数等于其中小 ...

最新文章

  1. 12月8日中科院刘永鑫报告:宏基因组数据分析的机遇与挑战
  2. 实体银行网点一定被消灭?银行如何平衡数字创新与线下体验?
  3. java thread join_java中thread的join方法为什么能让线程插队
  4. c++ 浮点比较和浮点运算
  5. 电液伺服系统_电液伺服系统的误差/偏差以及开环增益
  6. ML:自然语言处理NLP面试题
  7. IPhone开发 用子类搞定不同的设备(iphone和ipad)
  8. 飞畅 8口RS-485集线器产品性能参数介绍
  9. WPF仿网易云音乐系列(二、歌单创建窗口+登录设置模块)
  10. mysql substring函数截取值后赋给一个declare变量
  11. Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式...
  12. IDEA中使用Git拉取代码时出现Can‘t update: no tracked branch错误
  13. python怎么对excel进行排序_python – 使用openpyxl对Excel进行排序和自动过滤
  14. IT行业前景怎么样,你还有机会吗?
  15. 王老六计算机,crc校验和累加和校验哪个好
  16. kafka报错The request included a message larger than the max message size the server will accept
  17. Laravel+Vue前后端分离项目(四)邮箱验证与滑动验证
  18. 获得淘宝app商品详情原数据API
  19. 陕西渭南有什么小吃_爱问知识人
  20. 华硕电脑进入安全模式的方法

热门文章

  1. 机器学习100天(三十):030 K近邻分类算法-K值的选择
  2. Aspose.Words使用word模板中的书签插入图片(导出含有图片的word)
  3. 搞笑故事三分钟 第1期 每周2期
  4. android 图像对比度,关于opengl-es:Android-OpenGL-ES-反相曝光对比度饱和度色调滤镜
  5. cad自定义菜单cui_AutoCAD.NET二次开发:创建自定义菜单
  6. SSKD:自我监督知识蒸馏
  7. 开发小程序(一)设置四宫格
  8. 2020茶艺师(初级)考试题库及茶艺师(初级)在线考试
  9. 写程序选择c语言的理由,为什么你要学C语言
  10. CSS 中font样式