Z17100

{
    "Z1K1": "Z2",
    "Z2K1": {
        "Z1K1": "Z6",
        "Z6K1": "Z17100"
    },
    "Z2K2": {
        "Z1K1": "Z14",
        "Z14K1": "Z13587",
        "Z14K3": {
            "Z1K1": "Z16",
            "Z16K1": "Z610",
            "Z16K2": "def Z13587(Z13587K1: int) -\u003E str:\n    # define the units and tens place\n    ones = [\"\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"ten\", \"eleven\", \"twelve\", \"thirteen\", \"fourteen\", \"fifteen\", \"sixteen\", \"seventeen\", \"eighteen\", \"nineteen\"]\n    tens = [\"\", \"\", \"twenty\", \"thirty\", \"forty\", \"fifty\", \"sixty\", \"seventy\", \"eighty\", \"ninety\"]\n    units = [(\"\", 1, 0), (\"ten\", 10, 1), (\"hundred\", 100, 2), (\"thousand\", 1_000, 3), (\"lakh\", 1_00_000, 5), (\"crore\", 1_00_00_000, 7), (\"arab\", 1_00_00_00_000, 9), (\"kharab\", 1_00_00_00_00_000, 11), (\"nil\", 1_00_00_00_00_00_000, 13), (\"padma\", 1_00_00_00_00_00_00_000, 15), (\"shankh\", 1_00_00_00_00_00_00_00_000, 17)]\n\n    # function to convert numbers less than 1000 to words\n    def words(Z17100K1: int) -\u003E str:\n        if Z17100K1 == 0:\n            return \"\"\n        elif Z17100K1 \u003C= 19:\n            return ones[Z17100K1]\n        elif Z17100K1 \u003C= 99:\n            tens_unit = tens[Z17100K1 // 10]\n            ones_unit = ones[Z17100K1 % 10]\n            return (tens_unit + \"-\" + ones_unit) if ones_unit else tens_unit\n        else:\n            non_hundreds = words(Z17100K1 % 100)\n            return ones[Z17100K1 // 100] + \" hundred\" + (\" and \" if non_hundreds else \"\") + non_hundreds\n\n    # convert numbers to words\n    if Z13587K1 == 0:\n        return \"zero\"\n    elif Z13587K1 \u003C 0:\n        return \"negative \" + Z13587(-Z13587K1)\n    else:\n        \n        def word_recurse(Z13587K1: int) -\u003E str:\n            result = []\n            for word, value, power in reversed(units):\n                if Z13587K1 \u003E= value:\n                    mult, Z13587K1 = divmod(Z13587K1, value)\n                    if power \u003E= 3: result.append(word_recurse(mult))\n                    else: result.append(words(mult))\n                    result.append(word)\n                \n                if Z13587K1 \u003C 1000:\n                    result.append(words(Z13587K1))\n                    Z13587K1 = 0\n                    break\n            \n            resultfixed = (s for s in result if s)\n            resstr = \" \".join(resultfixed)\n            return resstr.strip()\n        \n        return word_recurse(Z13587K1)"
        }
    },
    "Z2K3": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11",
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1002",
                "Z11K2": "Indian-English cardinals,python"
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1004",
                "Z11K2": "cardinal en anglais indien, en Python"
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1820",
                "Z11K2": "भारतीय अंग्रेज़ी गणन अंक (Python)"
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1430",
                "Z11K2": "Kardinalzahlen in indisches Englisch, Python"
            }
        ]
    },
    "Z2K4": {
        "Z1K1": "Z32",
        "Z32K1": [
            "Z31"
        ]
    },
    "Z2K5": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11",
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1002",
                "Z11K2": "uses Indian English names for very large numbers."
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1004",
                "Z11K2": "utilise des noms anglais indiens pour les très grands nombres."
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1820",
                "Z11K2": "बहुत बड़ी संख्याओं के लिए भारतीय अंग्रेज़ी नाम का प्रयोग करता है।"
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1430",
                "Z11K2": "Verwendet indische englische Namen für sehr große Zahlen."
            }
        ]
    }
}