Pagini recente » Cod sursa (job #848839) | Cod sursa (job #2951133) | Cod sursa (job #179554) | Cod sursa (job #295914) | Cod sursa (job #3208748)
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream fin("frac.in");
ofstream fout("frac.out");
unsigned long long int cmmdc(unsigned long long int a, unsigned long long int b) {
unsigned long long int r;
while(b) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
unsigned long long int N, P, i, euler;
fin >> N >> P;
euler = 0;
vector<unsigned long long int> primeIntreEle;
for(i=1; i<N; i++) {
if(cmmdc(i, N) <= 1) {
//cout << i << ' ';
euler++;
primeIntreEle.push_back(i);
}
}
fout << P/euler * N + primeIntreEle[P%euler-1];
return 0;
}