Pagini recente » Monitorul de evaluare | Cod sursa (job #2720676) | Cod sursa (job #2347603) | Cod sursa (job #3323270) | Cod sursa (job #3330264)
#include <fstream>
using namespace std;
const int MAX=1000001;
ifstream f("mins.in");
ofstream g("mins.out");
int ciurn[MAX],
ciurp[MAX],
c,d,n;
long long card;
void calcul(int i)
{
if(ciurn[i]==0)
{
for(int j=i; j<=n; j+=i)
{
ciurn[j]++;
}
long long k = 1LL * i * i;
for(long long jj=k; jj<=n; jj+=k)
ciurp[jj]=1;
}
if(ciurp[i]==0)
{
long long t=1LL*(c/i)*(d/i);
if(ciurn[i]%2==0)
card-=t;
else
card+=t;
}
}
int main()
{
f>>c>>d;
c--,d--;
n = min(c,d);
for(int i=2; i<=n; i++)
{
calcul(i);
}
g<< 1LL * c * d -card;
return 0;
}