Pagini recente » Cod sursa (job #1532576) | Cod sursa (job #3217848) | Cod sursa (job #2998949) | Cod sursa (job #1208511) | Cod sursa (job #372371)
Cod sursa(job #372371)
#include <stdio.h>
int v[100001];
int u[10001];
int w[1001];
int k;
int ciur (int n)
{
int i, j;
for (i=2; i<n; i++) {
v[i]=i;
}
for (i=2; i<n; i++) {
if (v[i]!=0) {
for (j=2; j<n; j++) {
if (i*j<=n) {
v[i*j]=0;
}
else break;
}
}
}
j=1;
k=0;
for (i=1; i<n; i++) {
if (v[i]) {
u[j]=v[i];
j=j+1;
k=k+1;
}
}
}
int main ()
{
freopen("fractii.in", "r", stdin);
freopen("fractii.out", "w", stdout);
int n, c, i, j;
double phi;
scanf("%d", &n);
c=n;
ciur(n);
for (i=2; i<=n; i++) {
v[i]=i;
}
for (i=2; i<=n; i++) {
for (j=1; j<=k; j++) {
while (v[i]%u[j]==0) {
w[j]=u[j];
v[i]=v[i]/u[j];
}
}
}
for (i=2; i<=n; i++) {
phi=i;
for (j=1; j<=k; j++) {
if (w[j]!=0) {
phi=phi*(1-1/w[j]);
}
}
c=c+phi;
}
printf("%d", c);
return 0;
}