Pagini recente » Cod sursa (job #2665635) | Cod sursa (job #731136) | Cod sursa (job #2358962) | Cod sursa (job #697199) | Cod sursa (job #2259536)
#include <iostream>
#include <fstream>
using namespace std;
/* cmmdc(a,b)=d
xa+yb=d;
1. cmmdc(a,b)=cmmdc(b,a%b);
2. cmmdc(a,0)=a;
int f(int x)
{
if(x<3) return 1;
else return f(x-1)+f(x-2);
}
*/
int cmmdc(int a, int b,int &x,int &y) //ALGORITMUL LUI EUCLID EXTINS
{
if(b==0)
{ x=1;
y=0;
return a;
}
int d=cmmdc(b,a%b,x,y);
int xn=y;
y=x-y*(a/b);
x=xn;
return d;
}
int main()
{
ifstream cin("inversmodular.in");
ofstream cout("inversmodular.out");
int a, n, x, y;
cin>>a>>n>>x>>y;
cmmdc(a, n, x, y);
while(x<0)
{
x= x+n;
}
cout << x%n;
return 0;
}