def convert(num):
    yekan = {
        "01": "یک",
        "02": "دو",
        "03": "سه",
        "04": "چهار",
        "05": "پنج",
        "06": "شش",
        "07": "هفت",
        "08": "هشت",
        "09": "نه",
        "10": "ده",
        "11": "یازده",
        "12": "دوازده",
        "13": "سیزده",
        "14": "چهارده",
        "15": "پانزده",
        "16": "شانزده",
        "17": "هفده",
        "18": "هجده",
        "19": "نوزده"
    }


    dahgan = {
        "2": "بیست",
        "3": "سی",
        "4": "چهل",
        "5": "پنجاه",
        "6": "شصت",
        "7": "هفتاد",
        "8": "هشتاد",
        "9": "نود"
    }


    sadgan = {
        "1": "یکصد",
        "2": "دویست",
        "3": "سیصد",
        "4": "چهارصد",
        "5": "پانصد",
        "6": "ششصد",
        "7": "هفتصد",
        "8": "هشتصد",
        "9": "نهصد"
    }


    vahed = {
        0: "",
        1: "هزار",
        2: "میلیون",
        3: "میلیارد",
        4: "بیلیون",
        5: "بیلیارد",
        6: "تریلیون",
        7: "تریلیارد",
        8: "کوآدریلیون",
        9: "کادریلیارد",
        10: "کوینتیلیون",
        11: "کوانتینیارد",
        12: "سکستیلیون",
        13: "سکستیلیارد",
        14: "سپتیلیون",
        15: "سپتیلیارد",
        16: "اکتیلیون",
        17: "اکتیلیارد",
        18: "نانیلیون",
        19: "نانیلیارد",
        20: "دسیلیون",
        21: "دسیلیارد",
        22: "آندسیلیون",
        23: "آندسیلیارد",
        24: "دودسیلیون",
        25: "دودسیلیارد",
        26: "تریدسیلیون",
        27: "تریدسیلیارد",
        28: "کوادردسیلیون",
        29: "کوادردسیلیارد",
        30: "کویندسیلیون",
        31: "کویندسیلیارد",
        32: "سیدسیلیون",
        33: "سیدسیلیارد",
        34: "گوگول"
    }

    num = str(num)
    num_list = [num[i-3:i].zfill(3) if i > 2 else num[0:i].zfill(3)
                for i in range(len(num), 0, -3)]


    res_list = list()

    for index, num in enumerate(num_list):

        digit_list = list()

        if num[0] in sadgan:
            digit_list.append(sadgan[num[0]])

        if num[1:] in yekan:
            digit_list.append(yekan[num[1:]])
        else:
            if num[1] in dahgan:
                digit_list.append(dahgan[num[1]])

            if num[2].zfill(2) in yekan:
                digit_list.append(yekan[num[2].zfill(2)])

        if digit_list:
            res_list.insert(0, f"{' و '.join(digit_list)} {vahed[index]}")

    res = " و ".join(res_list)

    return res