描述
现有一道数学题:已知两个正整数 a 和 b(a≤b), a 到 b 之间(包含 a 和 b)所有的整数相乘可以得到一个乘积,求这个积的末尾从个位开始有多少个连续的 0。
例如 1 到 10 之间所有整数的乘积为 1×2×3×4×5×6×7×8×9×10=3628800,最后积的末尾有两个连续的 0。
输入描述
一行,包含两个正整数 a 和 b(1≤a≤b≤100000),数与数之间以一个空格隔开。
输出描述
一行,一个整数,表示积末尾从个位开始连续 0 的个数。
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
int cnt2 = 0, cnt5 = 0;
for(int i = a; i <= b; i ++) {
int x = i;
while(x % 2 == 0) {
x /= 2;
cnt2 ++;
}
while(x % 5 == 0) {
x /= 5;
cnt5 ++;
}
}
cout << min(cnt2, cnt5) << endl;
}