Pagini recente » Cod sursa (job #697328) | Cod sursa (job #1416764)
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int c , d , i , j , ii , jj , drepte;
int pm[5010][6];
bool ok;
bool ciur[5010];
int main()
{
freopen("mins.in","r",stdin);
freopen("mins.out","w",stdout);
scanf("%d %d", &c, &d);
for (i = 2; i <= max(c , d); ++i)
if (!ciur[i]) for (j = i; j <= max(c , d); j += i)
{
pm[j][++pm[j][0]] = i;
ciur[j] = true;
}
for (i = 2; i < min(c , d); ++i)
for (j = 1; j < i; ++j)
{
jj = 1; bool ok = false;
for (ii = 1; ii <= pm[i][0] && pm[j][0]; ++ii)
{
while (pm[j][jj] < pm[i][ii] && jj < pm[j][0]) jj++;
if (pm[i][ii] == pm[j][jj]) ok = true;
}
if (!ok) drepte++;
}
drepte *= 2; drepte++;
for (i = min(c , d); i < max(c , d); ++i)
for (j = 1; j < min(c , d); ++j)
{
jj = 1; bool ok = false;
for (ii = 1; ii <= pm[i][0] && pm[j][0]; ++ii)
{
while (pm[j][jj] < pm[i][ii] && jj < pm[j][0]) jj++;
if (pm[i][ii] == pm[j][jj]) ok = true;
}
if (!ok) drepte++;
}
printf("%d\n", drepte);
return 0;
}