С++ СИРИУС Факториал Для заданного натурального N найти последнюю ненулевую цифру числа N!.
Входные данные
Задано число число N(0 ≤ N ≤ 1 000 000).
Выходные данные
Выведите одно число — последнюю ненулевую цифру факториала числа N.
Примеры
Ввод
5
Вывод
2
Ввод
8
Вывод
2
#include <bits/stdc++.h>
using namespace std;
int n;
unsigned long long k = 1;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
while (n > 1) {
k *= n;
while (k % 10 == 0)
k /= 10;
k %= 10;
n--;
}
cout << k;
}
Для миллиона работает за 0.2 секунды. Сложность, вроде как, получается O(n).