Pagini recente » Cod sursa (job #2569091) | Monitorul de evaluare | Cod sursa (job #399426) | Cod sursa (job #3041650) | Cod sursa (job #1867743)
#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;
}