Cod sursa(job #1093551)
| Utilizator | Data | 28 ianuarie 2014 11:08:08 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.76 kb |
#include <cstdio>
using namespace std;
bool prim (int x)
{
int i;
for (i=2; i*2<=x; i++)
if (x%i==0) return false; return true;
}
int main()
{
int a, n, i;
freopen("inversmodular.in","r",stdin);
freopen("inversmodular.out","w",stdout);
scanf("%d%d",&a,&n);
if (prim(n))
{
long long int x=1;
for (i=1; i<=n-2; i++)
{
x*=a; x%=n;
}
printf("%d",x);
}
else printf("-1");
fclose(stdin);
fclose(stdout);
return 0;
}
