在rsa算法中求私钥需要用到扩展欧几里得算法算法。
欧几里得算法算法又叫辗转相除法,代码如下
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
扩展欧几里得算法如下:
int exgcd(int a,int b,int & x,int & y)
{
if(b == 0)
{
x = 1;
y = 0;
return a;
}
int r = exgcd(b, a%b, x, y);
int t = y;
y = x - (a/b)*y;
x = t;
return r;
}
暴力分解一个数,得到两个质数:
#include <stdio.h>
int fenjie(long long x)
{
int n = 2;
while(n < x)
{
if(x%n==0)
ptintf("%d %d",n,x/n);
n++;
}
}
int main()
{
long long a = 920139713;
fenjie(a);
}