public class EuclidExtend {
public int gcd(int a ,int b)
{
int temp=0;
//System.out.println("start:");
if(b!=0){
int i=1;
for(i=1;a-b*i>=0;i++)
{ ; }
temp=b;
b=a-b*(i-1);
a=temp;
//System.out.println("next step:"+a+","+b);
return gcd(a,b);
}
else{
System.out.println("最大公约数:" +a);
return a;
}
}
public void compute(int num1,int num2)
{
int Q,A3,B3,T1,T2,T3,A1=1,A2=0,B1=0,B2=1;
A3=num1;
B3=num2;
if(gcd(A3,B3)==1){
System.out.println(num1+"和"+num2+"有逆元!");
do{
if(B3==0){
A3=gcd(A3, B3);
System.out.println("no inverse.");
}
else if(B3==1){
B3=gcd(A3, B3);
if(B2<0)
{
B2=B2+num1;
}
System.out.println("逆元:"+B2);
break;
}
Q=(int)Math.floor(A3/B3);
T1=A1-Q*B1;
T2=A2-Q*B2;
T3=A3-Q*B3;
A1=B1;
A2=B2;
A3=B3;
B1=T1;
B2=T2;
B3=T3;
}while(true);
}
else{
System.out.println(num1+"和"+num2+"无逆元");
}
}
public static void main(String args[]){
int num1=1759,num2=550;
EuclidExtend ee=new EuclidExtend();
ee.compute(num1, num2);
}
}
分享到:
相关推荐
在压缩包中的`EuclideanAlgorithm.cpp`和`extend_Eulid.cpp`文件可能分别包含了基本欧几里得算法和扩展欧几里得算法的实现。`.exe`文件则是编译后的可执行程序,用户可以直接运行查看算法的执行结果,这对于初学者...
扩展欧几里得算法求逆元
扩展欧几里得算法是欧几里得算法的一种扩展,不仅能够找到两个整数的最大公约数(GCD),还能同时计算出它们的贝祖等式解。贝祖等式是这样的形式:ax + by = gcd(a, b),其中x和y是求解的系数。当a和b互质时,即gcd...
当a,b,且a互质时,计算ax+by=1的值, 是计算RSA密钥的基本步骤之一。
拓展欧几里得算法是对基础欧几里得算法的扩展,用于解决一类特殊的线性丢番图方程,形式为\(ax + by = gcd(a, b)\)。当\(gcd(a, b) = 1\),即\(a\)和\(b\)互质时,该方程的解提供了\(a\)关于模\(b\)的逆元,这对于解...
java语言实现的欧几里得算法,求最大公约数,以及满足(a,b)=x*a+y*b的x和y
在数学和计算机科学中,扩展欧几里得算法是一种用于计算最大公约数(GCD)的有效方法,同时还可以找到两个整数的线性同余方程的解。在这个场景下,我们关注的是如何使用扩展欧几里得算法来求解多项式的乘法逆元,...
**扩展的欧几里得算法**是计算两个整数的最大公约数(Greatest Common Divisor, GCD)的一种方法,并且能同时得到两个数的线性组合系数。在数论和计算机科学中,这个算法有着广泛的应用,比如解模线性同余方程、计算...
本篇将详细介绍欧几里得算法及其扩展形式,并展示如何在编程中实现。 欧几里得算法基于以下原理:两个正整数a和b(a > b)的最大公因数与b和a除以b的余数(a % b)的最大公因数相同。如果余数为0,那么b就是a和b的...
欧几里得是数论中的一个最初步的概念,它用来判断两个数的最大公因子,扩展的欧几里得能够进一步实现在两个数互素情况下的乘法可逆元。求可逆元是一些算法的基础。
### 乘法逆元与扩展欧几里得算法 #### 一、乘法逆元的基本概念 乘法逆元在密码学中具有重要的地位,它指的是对于一个整数 \( a \) 在模 \( p \) 意义下存在一个整数 \( b \),使得 \( ab \equiv 1 \pmod{p} \) ...
本实验“东南大学密码学实验——扩展欧几里得算法”是针对该领域的一次实践教学,旨在让学生深入理解并掌握扩展欧几里得算法这一基础数学工具。本文将详细解析该算法及其在密码学中的应用。 扩展欧几里得算法是基于...
扩展欧几里得算法不仅能够求出两个整数的最大公约数,还能找到满足以下等式的x和y的值: \[ ax + by = \text{gcd}(a,b) \] 这意味着该算法还可以用于解决线性同余方程。其实现方式基于递归的思想,并且在递归返回的...
信息安全入门基本必备,将基础的欧几里得扩展所得的扩展欧几里得算法。
本算法实现了用扩展欧几里得的方法求最大公因子和模逆元的方法,可以直接运行。
接下来,我们引入欧几里德扩展算法,也称为扩展欧几里得算法,它不仅可以找到最大公约数,还能同时找到a和b的贝祖等式解,即存在整数x和y,满足ax + by = gcd(a, b)。在求倒数的场景下,这个算法特别有用。如果我们...
扩展欧几里得算法是数论中的一个经典算法,它主要用于求解线性同余方程,例如找寻满足\( ax \equiv b \mod m \)的x值。在这个问题中,a、b和m都是整数,而m通常被视为模数。在密码学、计算机科学和数学中有广泛的...
扩展欧几里得算法在 UVa 12169 Disgruntled Judge 题中的应用 扩展欧几里得算法是一种常用的数论算法,用于求解线性 Diophantine 方程 ax + by = gcd(a, b),其中 a, b 是整数,x, y 是未知数,gcd(a, b) 是 a 和 b...
扩展欧几里得算法是数论中的一个基本算法,用于求解最大公约数(Greatest Common Divisor, GCD)以及找到整数a、b的乘积x和y,使得ax + by = gcd(a, b)。这个算法在密码学、计算机科学等领域有广泛应用,特别是在RSA...
扩展欧几里得算法,密码学,C,可交互