Niektóre liczby, takie jak: 6, 12, 20, 30, 42, 56, 60, 90, 120 itd., Które można wyrazić jako iloczyn kolejnych liczb całkowitych, jak pokazano poniżej.
6 = 2 * 3
12 = 3 * 4
30 = 5 * 6
60 = 3 * 4 * 5
90 = 9 * 10
120 = 4 * 5 * 6
Napisz program lub funkcję, która wyświetli listę kolejnych liczb całkowitych, których iloczyn równa się podanej liczbie.
Przykłady liczb, które nie pasują do tej logiki, to:
99 = 9 * 11 (Product of non-consecutive numbers)
121 = 11 * 11 (Same numbers)
2 = 1 * 2 (Product of itself and 1)
13 = 13 (Product of only one number)
Należy pamiętać, że w przypadku 2 = 2 * 1nie uważamy tego za prawidłowy wynik, ponieważ liczba całkowita pomnożona przez 1 daje ten sam wynik. W przypadku tego pytania weźmiemy pod uwagę tylko liczby całkowite> = 2 w produkcie.
Wejście
Prawidłowa 32-bitowa liczba całkowita dodatnia. Może być ze standardowego wejścia, argumentu funkcji itp.
Wynik
Lista kolejnych liczb całkowitych> = 2 (w kolejności rosnącej lub malejącej). Jeśli istnieje kilka kombinacji kolejnych liczb całkowitych, wystarczy podać jedno wystąpienie. Jeśli podasz więcej, będzie dobrze.
Ograniczenia
Uruchomienie kodu na standardowym komputerze w rozsądnym czasie (<5 minut) dla wszystkich prawidłowych danych wejściowych (dodatnie 32-bitowe liczby całkowite). Jeśli istnieje kolejny produkt liczb całkowitych, kod powinien wypisać jeden lub więcej w wyznaczonym terminie. W przeciwnym razie kod powinien zakończyć się bez wyjścia w wyznaczonym terminie.
To jest kod golfowy, więc wygrywa najkrótszy kod w bajtach.
30=5*6.