Pagini recente » Cod sursa (job #90644) | Cod sursa (job #807446) | Cod sursa (job #3252988) | Cod sursa (job #537356) | Cod sursa (job #933421)
Cod sursa(job #933421)
#include <fstream>
using namespace std;
int mod, n, aux, phi, i;
int putere(int a, int b)
{
if(b==0)
return 1;
if(b%2)
return ((((a%mod)*(putere(a, b/2))%mod)%mod)*(putere(a, b/2)%mod))%mod;
else return (((putere(a, b/2)%mod)*putere(a, b/2))%mod)%mod;
}
int main()
{
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
f>>n>>mod;
aux=n;
phi=n;
for(i=2; i*i<=aux; i++)
{
if(aux%i==0)
{
phi=(phi*i)/(i-1);
aux/=i;
}
while(aux%i==0)
aux/=i;
if(i!=2)
i++;
}
if(aux!=1)
{
phi=(phi*aux)/(aux-1);
}
g<<putere(n, phi-1);
}