Pagini recente » Cod sursa (job #844407) | Cod sursa (job #639670) | Cod sursa (job #515658) | Cod sursa (job #2923991) | Cod sursa (job #1148669)
# include <fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
long long n, i;
long long rez = 0;
long long v[1000001];
long long EulerTotient(long long n){
long long phi = n, i;
for (i = 2; i*i <= n; ++i){
if (n%i == 0){
phi /= i;
phi *= (i - 1);
while (n%i == 0)
n /= i;
}
}
if (n > 1){
phi /= n;
phi *= (n - 1);
}
return phi;
}
long long solve(long long n){
long long sol = 0;
long long i, j;
for (i = 1; i <= n; ++i)
v[i] = i;
for (i = 2; i <= n; ++i){
if (v[i] == i){
for (j = i; j <= n; j += i){
v[j] /= i;
v[j] *= (i - 1);
}
}
}
for (i = 2; i <= n; ++i){
//cout << v[i] << ' ';
sol += v[i];
}
return sol;
}
int main(){
f >> n;
/*
for (i = 1; i <= n; ++i)
rez += EulerTotient(i);
*/
rez = solve(n);
g << 2*rez + 1 << "\n";
g.close(); f.close();
return 0;
}