Cod sursa(job #2132842)
| Utilizator | Data | 16 februarie 2018 09:26:06 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <stdio.h>
#include <cstring>
#include <iostream>
using namespace std;
FILE *f,*g;
int a,b,x,y;
void invers_modular(int a, int b, int &x,int &y)
{
int aux;
if(b==0)
{
x=1;
y=0;
}
else
{
invers_modular(b,a%b,x,y);
aux=x;
x=y;
y=aux-y*(a/b);
}
}
int main()
{
f=fopen("inversmodular.in","r");
g=fopen("inversmodular.out","w");
fscanf(f,"%d %d",&a,&b);
invers_modular(a,b,x,y);
while(x<0)
x+=b;
fprintf(g,"%d",x);
cout<<x;
fclose(f);
fclose(g);
return 0;
}
