Pagini recente » Cod sursa (job #2448875) | Cod sursa (job #367781) | Cod sursa (job #1325297) | Cod sursa (job #1257854) | Cod sursa (job #1254320)
#include <iostream>
#include <fstream>
#define ll long long
#define nmax 1000005
using namespace std;
int n, phi[nmax], P[nmax], Q[nmax];
bool prime[nmax];
ll sol = 0LL;
int main() {
ifstream f("fractii.in");
ofstream g("fractii.out");
f>>n;
for(int i=1; i<=n; i++) phi[i] = i, prime[i] = true, P[i] = Q[i] = 1;
for(int i=2; i<=n; i++) {
if(!prime[i]) continue;
for(int j=i; j<=n; j+=i) {
if(j != i) prime[j] = false;
P[j] *= i-1;
Q[j] *= i;
}
}
for(int i=2; i<=n; i++) {
phi[i] *= P[i];
phi[i] /= Q[i];
sol += 1LL*phi[i];
}
sol = 2LL*sol + 1LL;
g<<sol<<"\n";
return 0;
}