Z24625

{
    "Z1K1": "Z2",
    "Z2K1": {
        "Z1K1": "Z6",
        "Z6K1": "Z24625"
    },
    "Z2K2": {
        "Z1K1": "Z14",
        "Z14K1": "Z24618",
        "Z14K3": {
            "Z1K1": "Z16",
            "Z16K1": "Z610",
            "Z16K2": "def Z24618(Z24618K1):\n\tnumber = Z24618K1\n\tzero = \"нула\"\n\tones_alt = [\"\", \"једна\", \"две\", \"три\", \"четири\", \"пет\", \"шест\", \"седам\", \"осам\", \"девет\"]\n\tones = [\"\", \"један\", \"два\", \"три\", \"четири\", \"пет\", \"шест\", \"седам\", \"осам\", \"девет\"]\n\tteens = [\"\", \"једанаест\", \"дванаест\", \"тринаест\", \"четрнаест\", \"петнаест\", \"шеснаест\", \"седамнаест\", \"осамнаест\", \"деветнаест\"]\n\ttens = [\"\", \"десет\", \"двадесет\", \"тридесет\", \"четрдесет\", \"педесет\", \"шездесет\", \"седамдесет\", \"осамдесет\", \"деведесет\"]\n\thundreds = [\"\", \"сто\", \"двеста\", \"триста\", \"четиристо\", \"петсто\", \"шестсто\", \"седамсто\", \"осамсто\", \"деветсто\"]\n\tblocks = [\"\", \"хиљаду\", \"хиљаде\", \"хиљада\"],\n\t\t\t\t[\"\", \"милион\", \"милионa\", \"милиона\"],\n\t\t\t\t[\"\", \"милијарду\", \"милијарде\", \"милијарди\"],\n\t\t\t\t[\"\", \"трилион\", \"трилиона\", \"трилиона\"],\n\t\t\t\t[\"\", \"квадрилион\", \"квадрилиона\", \"квадрилиона\"],\n\t\t\t\t\"\", \"квинтилион\", \"квинтилиона\", \"квинтилиона\"\n\n\n\tdef join_spellings(spelling1, spelling2):\n\t\tif (spelling1 == \"\" or spelling2 == \"\"):\n\t\t\treturn spelling1 + spelling2\n\t\telse:\n\t\t\treturn spelling1 + \" \" + spelling2\n\t\n\tdef spell_block(block, use_alt):\n\t\thundreds_spelling = hundreds[block // 100]\n\t\ttens_and_ones_spelling = \"\"\n\t\t\n\t\tif 10 \u003C (block % 100) \u003C 20:\n\t\t\ttens_and_ones_spelling = teens[block % 10]\n\t\telse:\n\t\t\ttens_spelling = tens[(block % 100) // 10]\n\t\t\tones_spelling = ones_alt[block % 10] if use_alt else ones[block % 10]\n\t\t\ttens_and_ones_spelling = join_spellings(tens_spelling, ones_spelling)\n\t\t\t\t\n\t\treturn join_spellings(hundreds_spelling, tens_and_ones_spelling)\n\t\n\tif number == 0:\n\t\treturn zero\n\t\t\n\tnumber_spelling = \"\"\n\tnumber_remainder = number\n\tblock_count = 0\n\twhile number_remainder != 0:\n\t\tcurrent_block = number_remainder % 1000\n\t\tlast_digit = current_block % 10\n\t\tlast_two_digits = current_block % 100\n\t\tblock_spelling = spell_block(current_block, (block_count == 1 or block_count == 3))\n\t\tnumber_remainder = number_remainder // 1000\n\t\t\n\t\tif (block_spelling != \"\"):\n\t\t\tgrammatical_number = -1\n\t\t\tif last_digit == 1 and last_two_digits != 11:\n\t\t\t\tgrammatical_number = 1\n\t\t\telif (2 \u003C= last_digit \u003C= 4) and not (12 \u003C= last_two_digits \u003C= 14):\n\t\t\t\tgrammatical_number = 2\n\t\t\telse:\n\t\t\t\tgrammatical_number = 3\n\t\t\t\t\n\t\t\tif (block_count == 1 or block_count == 3):\n\t\t\t\tif current_block == 1:\n\t\t\t\t\tblock_spelling = \"\"\n\t\t\t\telif grammatical_number == 1:\n\t\t\t\t\tgrammatical_number = 3\n\n\t\t\tif (1 \u003C= block_count \u003C= 6):\n\t\t\t\tblock_spelling = join_spellings(block_spelling, blocks[block_count-1][grammatical_number])\n\t\t\tnumber_spelling = join_spellings(block_spelling, number_spelling)\n\t\t\n\t\tblock_count += 1\n\treturn number_spelling"
        }
    },
    "Z2K3": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11",
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1002",
                "Z11K2": "Serbian cardinals, python"
            }
        ]
    },
    "Z2K4": {
        "Z1K1": "Z32",
        "Z32K1": [
            "Z31",
            {
                "Z1K1": "Z31",
                "Z31K1": "Z1002",
                "Z31K2": [
                    "Z6",
                    "sr-cyrl cardinals",
                    "sr cardinals"
                ]
            }
        ]
    },
    "Z2K5": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11"
        ]
    }
}