27 lines
731 B
Plaintext
27 lines
731 B
Plaintext
program damm_algorithm;
|
|
tests := [5724, 5727, 112946, 112949];
|
|
|
|
loop for test in tests do
|
|
print(str test + ': ' + if damm test then 'Pass' else 'Fail' end);
|
|
end loop;
|
|
|
|
op damm(n);
|
|
dt := [[0,3,1,7,5,9,8,6,4,2],
|
|
[7,0,9,2,1,5,4,8,6,3],
|
|
[4,2,0,6,8,7,1,3,5,9],
|
|
[1,7,5,0,9,8,3,4,2,6],
|
|
[6,1,2,3,0,4,5,9,7,8],
|
|
[3,6,7,3,2,0,9,5,8,1],
|
|
[5,8,6,9,7,2,0,1,3,4],
|
|
[8,9,4,5,3,6,2,0,1,7],
|
|
[9,4,3,8,6,1,7,2,0,5],
|
|
[2,5,8,1,4,3,6,7,9,0]];
|
|
|
|
i := 0;
|
|
loop for d in str n do
|
|
i := dt(i+1)(val d+1);
|
|
end loop;
|
|
return i=0;
|
|
end op;
|
|
end program;
|