Pagini recente » Cod sursa (job #2113847) | Cod sursa (job #390464) | Cod sursa (job #73996) | Cod sursa (job #2634686) | Cod sursa (job #1973042)
#include <fstream>
#include <math.h>
#define MAXN 1000005
using namespace std;
ifstream f ("fractii.in");
ofstream g ("fractii.out");
int n;
int c[MAXN];
int phi(int x)
{
double result = x;
for (int p = 2; p * p <= x; ++p){
if (x % p == 0){
while (x % p == 0)
x /= p;
result *= (p - 1);
result /= p;
}
}
if (x > 1){
result *= (x - 1);
result /= x;
}
return result;
}
int main(){
f >> n;
for(int i = 2; i <= n; ++i){
if(!c[i]){
for(int j = 2 * i; j <= n; j += i)
c[j] = 1;
}
}
long long sol = 1;
for(int i = 2; i <= n; ++i){
if(!c[i]) sol += 2 * (i - 1);
else sol += 2 * phi(i);
}
g << sol << '\n';
}