Cod sursa(job #16844)
Utilizator | Data | 14 februarie 2007 11:05:22 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <stdio.h>
#define MAXN (1 << 20)
int N;
long long rez;
int cnt[MAXN];
int main(void)
{
freopen("fractii.in", "rt", stdin);
freopen("fractii.out", "wt", stdout);
int i, j;
scanf("%d\n", &N);
for(i = 2; i <= N; i++)
{
cnt[i] = i-1-cnt[i];
for(j = i+i; j <= N; j+=i)
cnt[j] += cnt[i];
}
for(i = 2; i <= N; i++)
rez += (long long)(cnt[i]>>1);
rez++;
printf("%lld\n", rez);
return 0;
}