Pagini recente » Cod sursa (job #2212307) | Cod sursa (job #1803155) | Cod sursa (job #2092646) | Cod sursa (job #2115098) | Cod sursa (job #2694082)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
vector <int> v, fr(2);
int descompune(int n, vector <int> &fr, int aux){
for (int i = 0; i < v.size(); ++i){
int x = v[i];
while (x <= n){
fr[i] += (n / x) * aux;
x = x * x;
}
}
}
int main(){
int r, d, ans = 0;
fin >> r >> d;
if (d == 4) v = {2, 2};
else if (d == 6) v = {2, 3};
else v = {d};
descompune(r, fr, 1);
for (int j = 0; j <= r; ++j){
vector <int> fr2(2), fr3(2);
descompune(j, fr2, -1);
descompune(r - j, fr3, -1);
if (v.size() == 2){
if (fr[0] + fr2[0] + fr3[0] > 0 && fr[1] + fr2[1] + fr3[1] > 0){
++ans;
}
}
else{
if (fr[0] + fr2[0] + fr3[0] > 0){
++ans;
}
}
}
fout << ans;
fin.close();
fout.close();
return 0;
}