Pagini recente » Cod sursa (job #2618425) | Cod sursa (job #30013) | Cod sursa (job #2910506) | Cod sursa (job #1508610) | Cod sursa (job #812053)
Cod sursa(job #812053)
#include<stdio.h>
#include<math.h>
int d[1000];
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
int i, ci, j, nr=12, n, lim;
long long s = 1, r;
double x;
scanf("%d",&n);
d[1] = 2;
d[2] = 3;
d[3] = 5;
d[4] = 7;
d[5] = 11;
d[6] = 13;
d[7] = 17;
d[8] = 19;
d[9] = 23;
d[10] = 29;
d[11] = 31;
d[12] = 37;
for(i=41; i<=1000; i+=2)
{
for(j=1; j<=nr; j++)
if(i % d[j] == 0)
break;
if(j == nr + 1)
d[++ nr] = i;
}
for(i=2; i<=n; i++)
{
x = i;
ci = i;
lim = sqrt(i);
for(j=1; j<=nr && ci>1 && d[j] <= lim; j++)
if(ci % d[j] == 0)
{
while(ci % d[j] == 0)
{
ci /= d[j];
}
x = x * ((double)1 - ((double)1 / d[j]));
}
if(ci>1)
x = x * ((double)1 - ((double)1 / ci));
r = x;
s += r+r;
}
printf("%lld",s);
return 0;
}