Pagini recente » Cod sursa (job #2542085) | Cod sursa (job #3214620) | Cod sursa (job #1396883) | Cod sursa (job #981264) | Cod sursa (job #1375431)
#include<fstream>
#include<vector>
using namespace std;
typedef int var;
ifstream fin("mins.in");
ofstream fout("mins.out");
var DIV[10];
var nrdiv;
vector<var> D[1000002];
void ciur(var MAX) {
for(var i=2; i*i<=MAX; i++) {
if(D[i].empty()) {
for(var j=i; j<=MAX; j+=i) {
D[j].push_back(i);
}
}
}
}
//nr de numere <= a prime cu b
var cnt(var a, var b) {
var sgn = -1;
vector<var> &DIV = D[b];
if(DIV.empty() && b > 1) {
DIV.push_back(b);
}
var nrd = DIV.size();
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;
ciur(c+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;
}