Pagini recente » Cod sursa (job #880612) | Cod sursa (job #1857748) | Cod sursa (job #924428) | Cod sursa (job #772167) | Cod sursa (job #1409444)
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAX = 1000000;
int ciur[MAX+1];
bool put[MAX+1];
int c, d;
int main()
{
FILE *in, *out;
in=fopen("mins.in", "r");
out=fopen("mins.out", "w");
fscanf(in, "%d%d", &c, &d);
c--;
d--;
int lmax = min(c, d);
int i, j;
long long sol = 1LL * c * d;
for (i = 2; i <= lmax; ++i )
{
if(!ciur[i])
{
for ( j = i; j <= lmax; j += i )
ciur[j]++;
if ( 1LL * i * i <= lmax )
for (j = i * i; j <= lmax; j += i * i )
put[j] = true;
}
}
for ( i = 2; i <= lmax; ++i )
if ( put[i] == false )
{
if ( !(ciur[i] % 1 ))
sol -= 1LL * (c / i) * (d / i);
else
sol += 1LL * (c / i) * (d / i);
}
fprintf(out, "%lld", sol);
return 0;
}