Pagini recente » Cod sursa (job #582151) | Cod sursa (job #3134802) | Cod sursa (job #3242305) | Cod sursa (job #1968736) | Cod sursa (job #2242010)
#include <fstream>
#include <bitset>
using namespace std;
ifstream cin ("mins.in");
ofstream cout ("mins.out");
const int NMAX = 1e6;
int n, m, mn;
long long sol;
int dv[1 + NMAX];
bitset <1 + NMAX> viz;
int main() {
cin >> n >> m;
n--; m--;
mn = min(n, m);
for(int i = 2; i <= mn; i++) {
if(dv[i] == 0) {
for(int j = i; j <= mn; j += i)
dv[j]++;
if(mn / i < i)
continue;
for(int j = i * i; j <= mn; j += i * i)
viz[j] = 1;
}
}
sol = 1LL * n * m;
for(int i = 2; i <= mn; i++) {
if(viz[i])
continue;
if(dv[i] % 2)
sol -= 1LL * (n / i) * (m / i);
else
sol += 1LL * (n / i) * (m / i);
}
cout << sol;
return 0;
}