Mai intai trebuie sa te autentifici.

Cod sursa(job #1867743)

Utilizator Cioarec_GeorgeCioarec George Cioarec_George Data 4 februarie 2017 12:09:07
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>

using namespace std;

int indeuler(int n)
{
    int i, e;
    e = n;
    for (i=2; i*i<=n; i++)
        if(n%i==0)
        {
            e=n*(i-1)/i;
            while (n % i == 0)
                n /= i;
        }
    if (n != 1)
        e = e / n * (n - 1);
    return e;
}

int akmodn(int a, int k, int n)
{
    int p=1;
    while(k!=0)
    {
        if(k%2!=0)
            p=p*a%n;
        k /= 2;
        a=a*a%n;
    }
    return p;
}

int main()
{
    int l, d, n, a, e;
    cin>>a>>n;
    e=indeuler(n);
    cout<<akmodn(a, e-1, n);
    return 0;
}