function formatarNumero(valor)
  local formatado = valor
  while true do  
    formatado, n = string.gsub(formatado, "^(-?%d+)(%d%d%d)", '%1.%2')
    if ( n ==0 ) then
      break
    end
  end
  return formatado
end
 
print(formatarNumero(1))
print(formatarNumero(10))
print(formatarNumero(100))
print(formatarNumero(1000))
print(formatarNumero(10000))
print(formatarNumero(100000))
print(formatarNumero(1000000))
print(formatarNumero(10000000))
print(formatarNumero(100000000))
print(formatarNumero(1000000000))
print(formatarNumero(-123))
				ZnVuY3Rpb24gZm9ybWF0YXJOdW1lcm8odmFsb3IpCiAgbG9jYWwgZm9ybWF0YWRvID0gdmFsb3IKICB3aGlsZSB0cnVlIGRvICAKICAgIGZvcm1hdGFkbywgbiA9IHN0cmluZy5nc3ViKGZvcm1hdGFkbywgIl4oLT8lZCspKCVkJWQlZCkiLCAnJTEuJTInKQogICAgaWYgKCBuID09MCApIHRoZW4KICAgICAgYnJlYWsKICAgIGVuZAogIGVuZAogIHJldHVybiBmb3JtYXRhZG8KZW5kCgpwcmludChmb3JtYXRhck51bWVybygxKSkKcHJpbnQoZm9ybWF0YXJOdW1lcm8oMTApKQpwcmludChmb3JtYXRhck51bWVybygxMDApKQpwcmludChmb3JtYXRhck51bWVybygxMDAwKSkKcHJpbnQoZm9ybWF0YXJOdW1lcm8oMTAwMDApKQpwcmludChmb3JtYXRhck51bWVybygxMDAwMDApKQpwcmludChmb3JtYXRhck51bWVybygxMDAwMDAwKSkKcHJpbnQoZm9ybWF0YXJOdW1lcm8oMTAwMDAwMDApKQpwcmludChmb3JtYXRhck51bWVybygxMDAwMDAwMDApKQpwcmludChmb3JtYXRhck51bWVybygxMDAwMDAwMDAwKSkKcHJpbnQoZm9ybWF0YXJOdW1lcm8oLTEyMykp