Cod sursa(job #2389375)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 27 martie 2019 07:21:10
Problema Invers modular Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include<cstdio>
#define M 30
int a,n,x,y,o=-1,l;
char r[M];
int A()
{
  	int s=0;
  	for(o++;r[o]>='0'&&r[o]<='9';o++)
  		s=s*10+r[o]-'0';
  	return s;
}
void S(int x)
{
    int i,d=x>999999999?10:x>99999999?9:x>9999999?8:x>999999?7:x>99999?6:x>9999?5:x>999?4:x>99?3:x>9?2:1;
    for(i=d-1;i>=0;x/=10,i--)
        r[l+i]=x%10+48;
    r[l+d]=32,l+=d+1;
}
void E(int &x,int &y,int a,int b)
{
	int z;
    if(!b)
        x=1,y=0;
    else
        E(x,y,b,a%b),z=x,x=y,y=z-y*(a/b);
}
int main()
{
    freopen("inversmodular.in","r",stdin),freopen("inversmodular.out","w",stdout),fread(r,1,M,stdin),a=A(),n=A(),E(x,y,a,n),S(x<=0?(n+x%n):x),fwrite(r,1,l,stdout);
}