Pagini recente » Cod sursa (job #2866101) | Cod sursa (job #2056639) | Cod sursa (job #2038408) | Cod sursa (job #2464545) | Cod sursa (job #2836500)
#include <bits/stdc++.h>
using namespace std;
int cmmdc(int x,int y) {
if(!y) return x;
return cmmdc(y,x%y);
}
int main() {
ifstream cin("mins.in");
ofstream cout("mins.out");
int c, d;
cin >> c >> d;
c--, d--;
int ans = c * d;
int hmin = min(c,d);
vector<int> div(hmin+1, 0); // numarul de divizori
vector<bool> mul(hmin+1, 0); // verificam daca este multiplu de patrat perfect
for(int i = 2; i <= hmin; i++) {
if(!div[i]) {
for(int j = i; j <= hmin; j += i)
div[j]++;
for(int j = i*i; j <= hmin; j += i*i )
mul[j] = 1;
}
if(!mul[i]) {
int aux = (c/i) * (d/i);
if(div[i]%2 == 0) ans += aux;
else ans -= aux;
}
}
cout << ans << '\n';
return 0;
}