Pagini recente » Cod sursa (job #2859044) | Cod sursa (job #1258282) | Cod sursa (job #286668) | Cod sursa (job #2576883) | Cod sursa (job #472069)
Cod sursa(job #472069)
#include<cstdio>
#include<cstdlib>
#include<iostream>
int totient(int N)
{
int sum = N;
for(int i = 2; i*i <= N ; 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);
}