Pagini recente » Cod sursa (job #93126) | Cod sursa (job #602383) | Cod sursa (job #861654) | Cod sursa (job #3144615) | Cod sursa (job #1651950)
#include <fstream>
using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int divide2_fact[5000005], divide3_fact[5000005], divide5_fact[5000005], line, divide, total_divide2, total_divide3, total_divide5, ans;
int main() {
cin >> line >> divide;
for(int i = 2; i <= line; ++i) {
if(i % 2 == 0) {
divide2_fact[i] = divide2_fact[i / 2] + 1;
}
if(i % 3 == 0) {
divide3_fact[i] = divide3_fact[i / 3] + 1;
}
if(i % 5 == 0) {
divide5_fact[i] = divide5_fact[i / 5] + 1;
}
}
for(int i = 1; i <= line; ++i) {
total_divide2 += divide2_fact[line - i + 1] - divide2_fact[i];
total_divide3 += divide3_fact[line - i + 1] - divide3_fact[i];
total_divide5 += divide5_fact[line - i + 1] - divide5_fact[i];
if(divide == 2) {
ans += (total_divide2 >= 1);
}
else if(divide == 3) {
ans += (total_divide3 >= 1);
}
else if(divide == 4) {
ans += (total_divide2 >= 2);
}
else if(divide == 5) {
ans += (total_divide5 >= 1);
}
else {
ans += (total_divide2 >= 1 and total_divide3 >= 1);
}
}
cout << ans << '\n';
return 0;
}