crack n = helper n 0 0
where helper 0 _ acc
| acc == f acc = [acc]
helper k from acc
= concat [ helper
(k
-1) c
(acc
+ ps
!! c
) | c
<- [from
..9] ] f acc
= sum [ ps
!! (digitToInt c
) | c
<- show acc
]
aW1wb3J0IERhdGEuQ2hhcgppbXBvcnQgRGF0YS5JbnQKCmNyYWNrIDo6IEludCAtPiBbSW50NjRdCmNyYWNrIG4gPSBoZWxwZXIgbiAwIDAKICB3aGVyZSBoZWxwZXIgMCBfIGFjYwogICAgICAgICAgfCBhY2MgPT0gZiBhY2MgID0gIFthY2NdCiAgICAgICAgICB8IG90aGVyd2lzZSAgICAgPSAgW10KICAgICAgICBoZWxwZXIgayBmcm9tIGFjYyA9IGNvbmNhdCBbIGhlbHBlciAoay0xKSBjIChhY2MgKyBwcyAhISBjKSB8IGMgPC0gW2Zyb20uLjldIF0KICAgICAgICBwcyA9IG1hcCAoXjEzKSBbMC4uOV0KICAgICAgICBmIGFjYyA9IHN1bSBbIHBzICEhIChkaWdpdFRvSW50IGMpIHwgYyA8LSBzaG93IGFjYyBdCgptYWluID0gbWFwTV8gcHJpbnQgKGNyYWNrIDE1KQ==