Как найти последнюю ненулевую цифру N! быстрее чем за О(N)?
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | jiangly | 3810 |
| 2 | Benq | 3676 |
| 3 | Kevin114514 | 3655 |
| 4 | maroonrk | 3463 |
| 5 | strapple | 3390 |
| 6 | Um_nik | 3387 |
| 7 | tourist | 3384 |
| 8 | heuristica | 3322 |
| 9 | turmax | 3319 |
| 10 | jiangbowen | 3291 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 156 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | Um_nik | 144 |
| 5 | Errichto | 139 |
| 6 | adamant | 137 |
| 6 | AmShZ | 137 |
| 8 | BledDest | 132 |
| 8 | maroonrk | 132 |
| 10 | qwexd | 129 |
Как найти последнюю ненулевую цифру N! быстрее чем за О(N)?
| Название |
|---|



посмотри тут http://oeis.org/A008904 конкретнее это http://oeis.org/A008904/a008904b.txt
и еще как найти за O(n)?
Считаем факториал по модулю 10 просто перемножив все числа от 1 до N. Возникает проблема с последними нулями. Зная в какой степени в число войдёт 5 (2 войдет в большей степени), мы знаем количество последних нулей. Теперь, перед умножением на очередной множитель, будем делить его на 2 и на 5, пока он делится или пока количество делений на 2 и на 5 не достигнет количества нулей. Это решение за O(n).
Вот: http://www.codeforces.ru/blog/entry/4919#comment-99985
О, да тут же сама цифра нужна а не её номер, Сорри.
Algo на емаксе за plogn для 2 и для 5. Потом по кто восстановится