Pagini recente » Cod sursa (job #2066175) | Cod sursa (job #1040562) | Cod sursa (job #3248614) | Cod sursa (job #1369489) | Cod sursa (job #1651947)
#include <fstream>
using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int div2_fact[5000005], div3_fact[5000005], div5_fact[5000005], line, div, total_div2, total_div3, total_div5, ans;
int main() {
cin >> line >> div;
for(int i = 2; i <= line; ++i) {
if(i % 2 == 0) {
div2_fact[i] = div2_fact[i / 2] + 1;
}
if(i % 3 == 0) {
div3_fact[i] = div3_fact[i / 3] + 1;
}
if(i % 5 == 0) {
div5_fact[i] = div5_fact[i / 5] + 1;
}
}
for(int i = 1; i <= line; ++i) {
total_div2 += div2_fact[line - i + 1] - div2_fact[i];
total_div3 += div3_fact[line - i + 1] - div3_fact[i];
total_div5 += div5_fact[line - i + 1] - div5_fact[i];
if(div == 2) {
ans += (total_div2 >= 1);
}
else if(div == 3) {
ans += (total_div3 >= 1);
}
else if(div == 4) {
ans += (total_div2 >= 2);
}
else if(div == 5) {
ans += (total_div5 >= 1);
}
else {
ans += (total_div2 >= 1 and total_div3 >= 1);
}
}
cout << ans << '\n';
return 0;
}