25 lines
748 B
AutoHotkey
25 lines
748 B
AutoHotkey
n := 2, steplimit := 15, numerator := [], denominator := []
|
|
s := "17/91 78/85 19/51 23/38 29/33 77/29 95/23 77/19 1/17 11/13 13/11 15/14 15/2 55/1"
|
|
|
|
Loop, Parse, s, % A_Space
|
|
if (!RegExMatch(A_LoopField, "^(\d+)/(\d+)$", m))
|
|
MsgBox, % "Invalid input string (" A_LoopField ")."
|
|
else
|
|
numerator[A_Index] := m1, denominator[A_Index] := m2
|
|
|
|
SetFormat, FloatFast, 0.0
|
|
Gui, Add, ListView, R10 W100 -Hdr, |
|
|
SysGet, VSBW, 2
|
|
LV_ModifyCol(1, 95 - VSBW), LV_Add( , 0 ": " n)
|
|
Gui, Show
|
|
|
|
Loop, % steplimit {
|
|
i := A_Index
|
|
Loop, % numerator.MaxIndex()
|
|
if (!Mod(nn := n * numerator[A_Index] / denominator[A_Index], 1)) {
|
|
LV_Modify(LV_Add( , i ": " (n := nn)), "Vis")
|
|
continue, 2
|
|
}
|
|
break
|
|
}
|