Pagini recente » Cod sursa (job #135634) | Cod sursa (job #3036369) | Cod sursa (job #1474808) | Cod sursa (job #2940604) | Cod sursa (job #1469630)
#include<stdio.h>
#include<math.h>
int cmmdc(int a, int b)
{
int cmmdc;
while (b != 0)
{
cmmdc = b;
b = a % b;
a = cmmdc;
}
return a == 1 ? 0 : a;
/*
while (a != b)
if (a > b)
a = a - b;
else
b = b - a;
return a == 1 ? 0 : a;
*/
}
int main()
{
long unsigned n;
FILE *in = fopen("fractii.in", "r");
fscanf(in, "%d", &n);
fclose(in);
long double s;
long unsigned fi, i, j;
int v[500], nrp = 0, p, ok;
double h;
if (n == 1)
s = 1;
else
{
s = 3;
v[0] = 2;
for (i = 3;i <= n;i++)
{
j = i;
fi = i;
p = 0;
while (j > 1)
{
ok = 0;
while (!(j%v[p]))
{
ok = 1;
j = j / v[p];
}
if (ok)
fi = fi / v[p] * (v[p] - 1);else {
h = sqrt((double)j);
if ((v[p] > h) && (j > 1))
{
fi = fi / j*(j - 1);
if ((j<1000) && (j>v[nrp]))
v[++nrp] = j;
j = 1;
}
}
if (p < nrp)
p++;
}
s = s + 2 * fi;
}
}
FILE *out = fopen("fractii.out", "w");
fprintf(out, "%.0lf", s);
fclose(out);
return 0;
}