Cod sursa(job #1784491)

Utilizator flibiaVisanu Cristian flibia Data 20 octombrie 2016 08:43:50
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>
#define LL long long

using namespace std;

ifstream in("inversmodular.in");
ofstream out("inversmodular.out");

LL a, n, x;

int gcd(int a, int b)
{
	if(b == 0) return a;
	else return gcd(b, a % b);
}

LL pow(int num, int put)
{
	LL rs = 1, k = num;
	while(put)
	{
		if(put % 2 == 1) rs = (rs * k) % n;
	 	k = (k * k) % n;
	 	put /= 2;
	}
	return rs % n;
}

LL fidin(LL num)
{
	LL res = 0;
	for(int i = 1; i < num; i++)
	{
		if(gcd(num, i) == 1) res++; 
	}
	return res-1;
}

int main(){
	in >> a >> n;
	out << (a, fidin(a));
	return 0;
}