Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
O autorach niektórych zadań algorytmicznych mówi się czasami, że Mają rozmach, jak to mawiał Stefan Siara Siarzewski, w znanym filmie komediowym. Autorzy zadań na ten sparing chcieliby, żeby tak właśnie Wam chciało się o nich powiedzieć.
Dlatego poniosła ich fantazja i wyobrazili sobie liczbę N! (N silnia, czyli iloczyn kolejnych liczb naturalnych od 1 do N włącznie), dla bardzo dużej wartości N, powiedzmy że nawet do miliarda. Wyobrażacie to sobie? Dla jasności: takich liczb nie wyobraża sobie nawet interpreter Pythona, bo (przynajmniej na typowej maszynie) zabraknie mu czasu i pamięci, żeby to obliczyć.
Ale autorzy tego zadania idą dalej i wyobrażają sobie zbiór dzielników liczby N!. Duży co? Były już zadania na policzenie ile cyfr ma liczba elementów tego zbioru, ale tym razem chcemy policzyć co do jednego elementu ile jest dzielników nie przekraczających jakiejś niedużej liczby, powiedzmy nawet konkretnie wprost, że chodzi nam o dzielniki nie przekraczające miliarda.
Żeby nie było zbyt łatwo, limity czasu i pamięci są dla odmiany raczej niezbyt duże. Kłaniamy się nisko i pozdrawiamy z całego serca wszystkich rozwiązujących to zadanie życząc jednocześnie powodzenia w zdobyciu upragnionego akcepta.
Napisz program, który: wczyta liczbę naturalną N, wyznaczy liczbę dodatnich dzielników liczby N! nie przekraczających 109 i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym (jedynym) wierszu wejścia znajduje się jedna liczba naturalna N.
Wyjście
W pierwszym wierszu wyjścia powinna się znaleźć liczba naturalna – liczba dzielników liczby N! nie przekraczających 109.
Ograniczenia
1 ≤ N ≤ 109.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Liczba 5! = 1 ⋅ 2 ⋅ 3 ⋅ 4 ⋅ 5 = 120 ma 16 dzielników: 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30, 40, 60, 120, wszystkie są sporo mniejsze od miliarda, a więc wszystkie należy policzyć. |