Pagini recente » Cod sursa (job #910499) | Cod sursa (job #2573913) | Cod sursa (job #751700) | Cod sursa (job #1459853) | Cod sursa (job #1700262)
#include <bits/stdc++.h>
using namespace std;
typedef long long i64;
const int NMAX = 1000505;
int c[NMAX];
bool k[NMAX];
int main(void) {
FILE *fi = fopen("mins.in", "r");
FILE *fo = fopen("mins.out", "w");
int n, m;
i64 ans;
fscanf(fi,"%d%d",&n,&m);
--n;
--m;
ans = 1LL*n*m;
if(n>m)
swap(n, m);
for(int i=2; i<=n; i++) {
if(!c[i]) {
for(int j=i; j<=n; j+=i)
++c[j];
for(i64 j=1LL*i*i; j<=n; j+=i*i)
k[j] = 1;
}
}
for(int i=2; i<=n; i++) {
if(k[i])
continue;
if(c[i]&1)
ans -= 1LL*(n/i)*(m/i);
else
ans += 1LL*(n/i)*(m/i);
}
fprintf(fo,"%lld\n", ans);
fclose(fi);
fclose(fo);
return 0;
}