1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
from numpy import prod
def GetStep (nStep, nInput):
if nInput < 10:
return nStep
return GetStep (nStep + 1, prod([int(charLoop) for charLoop in str(nInput)]))
## print (GetStep(0, 1))
## arrInput = [15, 99, 1, 34] ## Example 1
arrInput = [50, 25, 33, 22] ## Example 2
arrOutput = arrInput[:]
for nRow in range(0, len(arrOutput) - 1):
for nCol in range(nRow + 1, len(arrOutput)):
if GetStep (0, arrOutput[nRow]) > GetStep (0, arrOutput[nCol]) or GetStep (0, arrOutput[nRow]) == GetStep (0, arrOutput[nCol]) and arrOutput[nRow] > arrOutput[nCol]:
vTemp = arrOutput[nRow]
arrOutput[nRow] = arrOutput[nCol]
arrOutput[nCol] = vTemp
print (arrOutput)
|