io[([[write]])](string[string[([[gsub]])]([[chAr]],[[A]],string[([[sub]])](_VERSION,string[([[find]])]([[ccA]],[[A]]),string[([[find]])]([[ccA]],[[A]])))](string[([[find]])]([[ccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),string[([[find]])]([[ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccA]],[[A]]),tostring(string[([[find]])]([[cccccccccA]],[[A]]))))
Try it online! Works in both 5.1 (as required) and 5.3.5 (the version on TIO).
It looks like my crack for the third challenge in the series was unnecessarily convoluted. It's taken me all this time to realise that _G
/getfenv()
aren't even needed: string
itself is a table!
As in the previous challenges, we need to create the string char
. We start with chAr
and replace the A
with a
, which is extracted as the third character of _VERSION
, a global string that returns Lua 5.1
in 5.1. Once this is done, we simply pass in a list of the required ASCII codes, generated using string[([[find]])]
to return the index of the first occurrence of the letter A
in strings of the form ccc...A
. For reasons I don't understand, the last ASCII code has to be passed to tostring
or else the last character gets printed twice.