Pagini recente » Borderou de evaluare (job #2683467) | Borderou de evaluare (job #1009312) | Borderou de evaluare (job #1276773) | Borderou de evaluare (job #1900276) | Cod sursa (job #1403523)
#include <fstream>
using namespace std;
void euclid(long a, long b, long *x, long *y)
{
if(b==0)
{
*x=1;
*y=0;
}
else
{
long x0, y0;
euclid(b, a%b, &x0, &y0);
*x=y0;
*y=x0-(a/b)*y0;
}
}
int main()
{
ifstream in("inversmodular.in");
ofstream out("inversmodular.out");
long a, n, x, y;
in>>a>>n;
euclid(a, n, &x, &y);
while(x<0) x+=n;
out<<x<<endl;
return 0;
}