Pagini recente » Cod sursa (job #679155) | Cod sursa (job #1499394) | Cod sursa (job #2335710) | Cod sursa (job #2645234) | Cod sursa (job #1375494)
#include<fstream>
#include<vector>
using namespace std;
typedef int var;
ifstream fin("mins.in");
ofstream fout("mins.out");
var D[1000002][8];
var N[1000002];
void ciur(var MAX) {
for(var i=2; i<=MAX; i++) {
if(N[i] == 0) {
for(var j=i; j<=MAX; j+=i) {
D[j][N[j]] = i;
N[j]++;
}
}
}
}
//nr de numere <= a prime cu b
var cnt(var a, var b) {
var sgn = -1;
var *DIV = D[b];
var nrd = N[b];
var total = 0;
for(var conf=1; conf<(1<<nrd); conf++) {
var prod = 1;
sgn = -1;
for(var i=0; i<nrd; i++) {
if(conf & (1<<i)) {
sgn = -sgn;
prod *= DIV[i];
}
}
total += sgn*a/prod;
}
return a-total;
}
int main() {
var c, d;
fin>>c>>d;
if(c > d) swap(c, d);
ciur(1000+1);
//fout<<cnt(10, 15)<<'\n';
int64_t sum =0;
for(var i=1; i<c; i++) {
sum += 1LL * cnt(d-1, i);
}
fout<<sum;
}