Pagini recente » Cod sursa (job #3343228) | Cod sursa (job #1481326) | Cod sursa (job #1502584) | Cod sursa (job #642114) | Cod sursa (job #3330361)
#include <iostream>
#include <fstream>
#include <vector>
#define ll long long
// #define fin cin
// #define gout cout
using namespace std;
ifstream fin("mins.in");
ofstream gout("mins.out");
const int MAX=1000001;
int ciurn[MAX],ciurp[MAX],c,d,n;
ll card;
void calcul(int i)
{
if(!ciurn[i])
{
for(int j=i; j<=n; j+=i)++ciurn[j];
ll k=1LL*i*i;
for(ll j=k; j<=n; j+=k)ciurp[j]=1;
}
if(!ciurp[i])
{
ll t=1LL*(c/i)*(d/i);
if(ciurn[i]%2==0)card-=t;
else card+=t;
}
}
int main()
{
fin>>c>>d;
n=min(--d,--c);
for(int i=2; i<=n; ++i)calcul(i);
gout<<1LL*c*d-card;
return 0;
}