Pagini recente » Cod sursa (job #258456) | Cod sursa (job #2120681) | Cod sursa (job #2390659) | Cod sursa (job #3030463) | Cod sursa (job #2882048)
#include <fstream>
using namespace std;
ifstream f("mins.in");
ofstream g("mins.out");
long long c, d, i, j, sol, x, cnt[1000100], mini;
int main()
{
f >> c >> d;
c--;
d--;
mini = min(c, d);
sol = sol + (c / 2) * (d / 2);
sol = sol + (c / 3) * (d / 3);
sol = sol - (c / 6) * (d / 6);
for (i = 5; i <= mini; i += 2)
{
x = 1 - cnt[i];
sol = sol + x * (c / i) * (d / i);
sol = sol - x * (c / (i * 2)) * (d / (i * 2));
sol = sol - x * (c / (i * 3)) * (d / (i * 3));
sol = sol + x * (c / (i * 6)) * (d / (i * 6));
if (x)
{
for (j = i; j <= mini; j += 2 * i)
{
cnt[j] += x;
j += 4 * i;
if (j <= mini)
cnt[j] += x;
}
}
i += 4;
if (i <= mini)
{
x = 1 - cnt[i];
sol = sol + x * (c / i) * (d / i);
sol = sol - x * (c / (i * 2)) * (d / (i * 2));
sol = sol - x * (c / (i * 3)) * (d / (i * 3));
sol = sol + x * (c / (i * 6)) * (d / (i * 6));
if (x)
{
for (j = i; j <= mini; j += 2 * i)
{
cnt[j] += x;
j += 4 * i;
if (j <= mini)
cnt[j] += x;
}
}
}
}
g << c * d - sol;
f.close();
g.close();
return 0;
}