Cod sursa(job #171312)
Utilizator | Data | 3 aprilie 2008 23:46:57 | |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <iostream>
#define FIN "fractii.in"
#define FOUT "fractii.out"
#define MAX_N 1000000
using namespace std;
int n,phi[MAX_N+1];
int main(void){
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
scanf("%d\n",&n);
fclose(stdin);
for (int i=1;i<=n;i++){
phi[i]=i-1;
}
for (int i=2;i<n;i++){
int current=i;
while (current+i<=n){
current+=i;
phi[current]-=phi[i];
}
}
int rez=1;
for (int i=2;i<=n;i++){
rez+=2*phi[i];
}
printf("%d\n",rez);
fclose(stdout);
return 0;
}