Pagini recente » Cod sursa (job #1139839) | Cod sursa (job #1246827) | Cod sursa (job #1350432) | Cod sursa (job #1718028) | Cod sursa (job #2816628)
#include <fstream>
using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int n, m;
int exponent(int n, int p){
int ans = 0;
while(p <= n){
ans += n / p;
p = p * p;
}
return ans;
}
bool prim(int n){
return n == 2 || n == 3 || n == 5;
}
int main(){
cin >> n >> m;
int ans = 0;
for(int i = 1; i < n; ++i){
if(prim(m)){
int a = exponent(n, m);
int b = exponent(n - i, m);
int c = exponent(i, m);
if(a - (b + c) >= 1){
ans++;
}
}
else if(m == 4){
int a = exponent(n, 2);
int b = exponent(n - i, 2);
int c = exponent(i, 2);
if(a - (b + c) >= 2){
ans++;
}
}
else if(m == 6){
int a2 = exponent(n, 2);
int b2 = exponent(n - i, 2);
int c2 = exponent(i, 2);
int a3 = exponent(n, 3);
int b3 = exponent(n - i, 3);
int c3 = exponent(i, 3);
if(a2 - (b2 + c2) >= 1 && a3 - (b3 + c3) >= 1){
ans++;
}
}
}
cout << ans;
return 0;
}