42 lines
956 B
Plaintext
42 lines
956 B
Plaintext
Module Damm_Algorithm{
|
|
Function Prepare {
|
|
function OperationTable {
|
|
data (0, 3, 1, 7, 5, 9, 8, 6, 4, 2)
|
|
data (7, 0, 9, 2, 1, 5, 4, 8, 6, 3)
|
|
data (4, 2, 0, 6, 8, 7, 1, 3, 5, 9)
|
|
data (1, 7, 5, 0, 9, 8, 3, 4, 2, 6)
|
|
data (6, 1, 2, 3, 0, 4, 5, 9, 7, 8)
|
|
data (3, 6, 7, 4, 2, 0, 9, 5, 8, 1)
|
|
data (5, 8, 6, 9, 7, 2, 0, 1, 3, 4)
|
|
data (8, 9, 4, 5, 3, 6, 2, 0, 1, 7)
|
|
data (9, 4, 3, 8, 6, 1, 7, 2, 0, 5)
|
|
data (2, 5, 8, 1, 4, 3, 6, 7, 9, 0)
|
|
=array([])
|
|
}
|
|
Digits= Lambda (d) ->{
|
|
d$=str$(d,"")
|
|
for i=1 to len(d$)
|
|
data val(mid$(d$,i,1))
|
|
next
|
|
=Array([])
|
|
}
|
|
=Lambda a()=OperationTable(), Digits (N) -> {
|
|
dim b()
|
|
b()=Digits(N)
|
|
m=0
|
|
for i=0 to len(b())-1
|
|
m=a(m)(b(i))
|
|
next i
|
|
=m
|
|
}
|
|
}
|
|
Damm=Prepare()
|
|
Data 5724, 5727, 112946, 112940
|
|
while not empty
|
|
over ' double the top of stack
|
|
over
|
|
Print number, Damm(number), Damm(number)=0
|
|
End While
|
|
}
|
|
Damm_Algorithm
|