Pagini recente » Cod sursa (job #3337095) | Cod sursa (job #3322289) | Cod sursa (job #3309056) | Monitorul de evaluare | Cod sursa (job #3326462)
#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;
f.close();
g.close();
return 0;
}