Cod sursa(job #240958)

Utilizator M@2Te4iMatei Misarca M@2Te4i Data 8 ianuarie 2009 22:41:26
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<cstdio>

using namespace std;

int a[200],b[200],c,w[200],q[200],i,t,n;

int main()
{
	freopen("inversmodular.in","r",stdin);
	freopen("inversmodular.out","w",stdout);
	scanf("%d%d",&a[1],&b[1]);
	c=i=1;
	while(b[i])
	{
	    a[i+1]=b[i];
	    b[i+1]=a[i]%b[i];
	    i++;
    }
	n=i;
	w[n]=c/a[n];
	q[n]=0;
	for(i=n-1;i>=1;i--)
	{
	    w[i]=q[i+1];
	    q[i]=w[i+1]-(a[i]/b[i])*q[i+1];
    }
	while (w[1]>=b[1])
        w[1]-=b[1];
    while (w[1]<0)
        w[1]+=b[1];
	printf("%d\n",w[1]);
	return 0;
}