Pagini recente » Cod sursa (job #2674064) | Cod sursa (job #3315166) | Diferente pentru problema/revolve intre reviziile 26 si 25 | Diferente pentru problema/ecexp intre reviziile 3 si 11 | Cod sursa (job #3357136)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void euclid(long long a,long long b,long long *x,long long *y)
{
if(b==0)
{
*x=1;
*y=0;
return;
}
long long x1,y1;
euclid(b,a%b,&x1,&y1);
*x=y1;
*y=x1-(a/b)*y1;
}
int main()
{
FILE *file = fopen("inversmodular.in", "r");
FILE *output = fopen("inversmodular.out", "w");
if (file == NULL)
{
fprintf(stderr, "Eroare deschidere fisier intrare.\n");
return 1;
}
if (output == NULL)
{
fprintf(stderr, "Eroare deschidere fisier iesire.\n");
fclose(file);
return 1;
}
long long a,n;
long long x,y;
fscanf(file,"%lld %lld", &a,&n);
euclid(a,n,&x,&y);
fprintf(output,"%lld\n", x);
return 0;
}