Pagini recente » Cod sursa (job #223365) | Cod sursa (job #2299) | Cod sursa (job #2056395) | Cod sursa (job #2559930) | Cod sursa (job #2694094)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int r, d, fr[2];
inline void descompune(int r, int *fr){
if (d == 2 || d == 4 || d == 6){
int x = 2;
while (x <= r){
fr[0] += r / x;
x *= x;
}
if (d == 6){
x = 3;
while (x <= r){
fr[1] += r / x;
x *= x;
}
}
}
else{
int x = d;
while (x <= r){
fr[0] += r / x;
x *= x;
}
}
}
int main(){
fin >> r >> d;
descompune(r, fr);
int ans = 0;
for (int i = 0; i <= r; ++i){
int fr2[2] = {0, 0};
int fr3[2] = {0, 0};
descompune(i, fr2);
descompune(r - i, fr2);
if (d == 2 || d == 3 || d == 5){
if (fr[0] - fr2[0] - fr3[0] > 0){
++ans;
}
}
else if (d == 4){
if (fr[0] - fr2[0] - fr3[0] > 1){
++ans;
}
}
else{
if (fr[0] - fr2[0] - fr3[0] > 0 && fr[1] - fr2[1] - fr3[1] > 0){
++ans;
}
}
}
fout << ans;
fin.close();
fout.close();
return 0;
}