Cod sursa(job #2544956)
| Utilizator | Data | 12 februarie 2020 18:36:58 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
int phi(int nr){
/**
@brief Indicatorul lui Eratostene
**/
int sol = nr;
int d = 2;
while(nr > 1){
if(nr % d == 0){
sol = sol / d * (d - 1);
while(nr % d == 0){
nr /= d;
}
}
++d;
if(d * d > nr){
d = nr;
}
}
return sol;
}
int solve(){
int k = 0;
for(int i=2; i<=n; ++i){
k += phi(i);
}
k *= 2;
++k;
return k;
}
int main()
{
fin >> n;
fout << solve();
}
