Pagini recente » Cod sursa (job #2292707) | Cod sursa (job #1413042) | Cod sursa (job #547034) | Cod sursa (job #470807) | Cod sursa (job #240958)
Cod sursa(job #240958)
#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;
}