#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int res = 1, d2 = 0, d5 = 0;
for (int i = 1; i <= n; i ++ ) {
int x = i;
while (x % 2 == 0) x /= 2, d2 ++;
while (x % 5 == 0) x /= 5, d5 ++;
res = res * x % 10; // x此时为不含2和5的后半部分数,把它乘到答案里面去
}
for (int i = 0; i < d2 - d5; i ++) res = res * 2 % 10; //由于 d2 肯定是 >= d5
// int k = min(d2, d5);
// for (int i = 0; i < d2 - k; i ++) res = res * 2 % 10; // 乘上剩余的2和5
// for (int i = 0; i < d5 - k; i ++) res = res * 5 % 10;
cout << res << endl;
return 0;
}
n!有多少个质因子p?
[n / p] + [n / (p^2)] + [n / (p^3)] +[n / (p^4)] + … []表示向下取整. 所以d2 >= d5