En samtale mellom en person og en AI-assistent kalt Nordavind [INST] Design et program som tar imot tall mellom 0 og 9,999 og skriver ut den talte versjonen av tallet. [/INST] def konverter_til_talt(num):
    if not num:
        return 'null'
    
    if num > 9999:
        print('Tallet må være mindre enn 10,000')
        return
    
    singles = {1: 'en', 2: 'to', 3: 'tre', 4: 'fire',
        5: 'fem', 6: 'seks', 7: 'syv', 8: 'åtte',
        9: 'ni'
    }
    
    teens = {10: 'ti', 11: 'elleve', 12: 'tolv',
        13: 'tretten', 14: 'fjorten', 15: 'femten',
        16: 'seksten', 17: 'sytten', 18: 'atten',
        19: 'nitten'
    }
    
    tens = {2: 'tjue', 3: 'tretti', 4: 'førti', 5: 'femti',
        6: 'seksti', 7: 'sytti', 8: 'åtti', 9: 'nitti',
    }
    
    # lag en liste med steg basert på tallets lengde
    steps = [
        (' tusen', 1000000), (' hundre', 1000),
        ('', 0)
    ]
    
    # del tallet inn i 3 sifre hver
    digits = []
    while num > 0:
        r = num % 1000
        digits.insert(0, r)
        num //= 1000
    
    talt_num = []
    # konverter hvert 3-sifret tall til talt format
    for i, dig in enumerate(digits):
        if dig == 0:
            continue
        
        lbl, step = steps[i]
        a, b = divmod(dig, step)
        
        talt_num.append(konverter_til_talt_3dig(a, b, 
            singles, teens, tens))
        talt_num.append(lbl)
    
    return ' '.join(talt_num)

def konverter_til_talt_3dig(a, b, singles, teens, tens):
    talt_nums = []
    
    # konverter hundretalls plass
    if a:
        talt_nums.append(singles[a] + ' hundre')
    
    # konverter tierplass
    if b:
        if b in singles:
            talt_nums.append(singles[b])
        elif b in teens:
            talt_nums.append(teens[b])
        else:
            t, o = divmod(b, 10)
            talt_nums.append(tens[t])
            if o:
                talt_nums.append(singles[o])
    
    return ' '.join(talt_nums)