Pagini recente » Cod sursa (job #2473336) | Cod sursa (job #1541936) | Cod sursa (job #1489451) | Cod sursa (job #583025) | Cod sursa (job #562479)
Cod sursa(job #562479)
# include <stdio.h>
int N, i, j;
long long s, result;
int phi[1000001];
int main(){
freopen ("fractii.in", "r", stdin);
freopen ("fractii.out", "w", stdout);
scanf ("%d", &N);
for (int i=1;i<=N;i++) phi[i]=i; // construim vectorul phi (vezi documentatie Wikipedia: Euler's Phi
for (int i=2;i<=N;i++){
if (phi[i]==i){
for (j=i;j<=N;j+=i){
phi[j] /=i;
phi[j] *= (i-1);
}
}
}
for (j = 2; j <= N; j++)
s += phi[j]; // calculam suma totient-ului phi
result = s * 2 + 1; // calculam rezultatul final al fractiilor folosind s
printf ("%lld", result);
return 0;
}