Pagini recente » Cod sursa (job #2972545) | Cod sursa (job #1825842) | Cod sursa (job #1825463) | Cod sursa (job #2936133) | Cod sursa (job #699306)
Cod sursa(job #699306)
//JOS ACTA!
#include <stdio.h>
int x[1000], f[100];
inline bool isPrime (int x)
{
int d;
for (d = 3; d * d <= x; d = d + 2)
if (x % d == 0)
return 0;
return 1;
}
int main ()
{
int c, d, i, j, ci, sol = 0, b, now, ter, now2;
freopen ("mins.in", "r", stdin);
freopen ("mins.out", "w", stdout);
scanf ("%d%d", &c, &d);
c --; d --;
x[++ x[0]] = 2;
for (i = 3; i <= d; i ++)
if (isPrime (i))
x[++ x[0]] = i;
for (i = 1; i <= c; i ++)
{
ci = i;
f[0] = 0;
for (j = 1; x[j] * x[j] <= ci && x[j]; j ++)
if (ci % x[j] == 0)
{
f[++ f[0]] = x[j];
while (ci % x[j] == 0)
ci = ci / x[j];
}
if (ci > 1)
f[++ f[0]] = ci;
now2 = 0;
for (j = 1; j < (1 << f[0]); j ++)
{
now = 1; ter = 0;
for (b = 0; b < f[0]; b ++)
if (j & (1 << b))
now = now * f[b + 1], ter ++;
if (ter & 1)
now2 = now2 + d / now;
else
now2 = now2 - d / now;
}
sol = sol + d - now2;
}
printf ("%d", sol);
return 0;
}
//jos actaaaaaaaaaaaaaaaa!!!! sa ma p*s pe el de tratat