
Funkcja D jest określona na liczbach całkowitych w następujący sposób:
D(N) = N, gdy 0 ≤ N ≤ 9;
D(N) = iloczyn cyfr reprezentacji dziesiętnej liczby abs(N) w przeciwnym przypadku.
Dana jest liczba całkowita N. Ciąg S konstruujemy następująco:
S[0] = N
S[1] = D(N)
S[2] = D(D(N))
...
S[K] = DK(N)
...
Na przykład, rozważmy N = 6942. D(N) = 6*9*4*2 = 432. Początkowe elementy ciągu S utworzonego dla liczby N to: 6942, 432, 24, 8, 8, ... . Dalej ciąg jest stały.
Napisz funkcję:
function iterated_digits_product($N);
która, mając daną liczbę całkowitą N, zwraca taką najmniejszą nieujemną liczbę całkowitą K, że S[K] = S[K+1], gdzie S jest ciągiem skonstruowanym dla liczby całkowitej N. Funkcja ta powinna zwracać −1, jeśli taka liczba K nie istnieje.
Na przykład, mając dane N = 6942, funkcja powinna zwrócić 3, jak to pokazano powyżej.