Pagini recente » Cod sursa (job #340084) | Cod sursa (job #2069063) | Cod sursa (job #2361269) | Cod sursa (job #215530) | Cod sursa (job #472068)
Cod sursa(job #472068)
#include<cstdio>
#include<cstdlib>
#include<iostream>
int totient(int N)
{
int sum = N;
for(int i = 2; i*i <= N ; i = i += 2)
{
if(N % i == 0)
{
sum -= sum/i;
while(N % i == 0)
N /= i;
}
}
if( N != 1)
sum -= sum/N;
return sum;
}
int main()
{
FILE* f = fopen("fractii.in", "r");
FILE* g = fopen("fractii.out", "w");
int N;
fscanf(f, "%d", &N);
unsigned long long total = 0;
for(int i = 2; i <= N; i++)
{
//printf("[totient %d %d]\n", i, totient(i));
total += totient(i);
}
total *= 2;
total++;
fprintf(g, "%llu\n", total);
fclose(f);
fclose(g);
}