This module contains data on various types of numbers in Tajik.

Number Cardinal Ordinal
0 сифр (sifr)
1 як (yak) аввал (avval), якум (yakum)
2 ду (du) дуюм (duyum)
3 се (se) сеюм (seyum)
4 чор (čor), (dated) чаҳор (čahor) чорум (čorum), (dated) чаҳорум (čahorum)
5 панҷ (panj) панҷум (panjum)
6 шаш (šaš) шашум (šašum)
7 ҳафт (haft) ҳафтум (haftum)
8 ҳашт (hašt) ҳаштум (haštum)
9 нуҳ (nuh) нуҳум (nuhum)
10 даҳ (dah) даҳум (dahum)
11 ёздаҳ (yozdah) ёздаҳум (yozdahum)
12 дувоздаҳ (duvozdah) дувоздаҳум (duvozdahum)
13 сенздаҳ (senzdah) сенздаҳум (senzdahum)
14 чордаҳ (čordah) чордаҳум (čordahum)
15 понздаҳ (ponzdah) понздаҳум (ponzdahum)
16 шонздаҳ (šonzdah) шонздаҳум (šonzdahum)
17 ҳабдаҳ (habdah) ҳабдаҳум (habdahum)
18 ҳаждаҳ (haždah) ҳаждаҳум (haždahum)
19 нуздаҳ (nuzdah) нуздаҳум (nuzdahum)
20 бист (bist)
21 бисту як (bistu yak)
22 бисту ду (bistu du)
23 бисту се (bistu se)
24 бисту чор (bistu čor), (dated) бисту чаҳор (bistu čahor)
25 бисту панҷ (bistu panj)
26 бисту шаш (bistu šaš)
27 бисту ҳафт (bistu haft)
28 бисту ҳашт (bistu hašt)
29 бисту нуҳ (bistu nuh)
30 сӣ (si)
31 сию як (siyu yak)
32 сию ду (siyu du)
33 сию се (siyu se)
34 сию чор (siyu čor), (dated) сию чаҳор (siyu čahor)
35 сию панҷ (siyu panj)
36 сию шаш (siyu šaš)
37 сию ҳафт (siyu haft)
38 сию ҳашт (siyu hašt)
39 сию нуҳ (siyu nuh)
40 чил (čil)
41 чилу як (čilu yak)
42 чилу ду (čilu du)
43 чилу се (čilu se)
44 чилу чор (čilu čor), (dated) чилу чаҳор (čilu čahor)
45 чилу панҷ (čilu panj)
46 чилу шаш (čilu šaš)
47 чилу ҳафт (čilu haft)
48 чилу ҳашт (čilu hašt)
49 чилу нуҳ (čilu nuh)
50 панҷох (panjox)
51 панҷоху як (panjoxu yak)
52 панҷоху ду (panjoxu du)
53 панҷоху се (panjoxu se)
54 панҷоху чор (panjoxu čor), (dated) панҷоху чаҳор (panjoxu čahor)
55 панҷоху панҷ (panjoxu panj)
56 панҷоху шаш (panjoxu šaš)
57 панҷоху ҳафт (panjoxu haft)
58 панҷоху ҳашт (panjoxu hašt)
59 панҷоху нуҳ (panjoxu nuh)
60 шаст (šast)
61 шасту як (šastu yak)
62 шасту ду (šastu du)
63 шасту се (šastu se)
64 шасту чор (šastu čor), (dated) шасту чаҳор (šastu čahor)
65 шасту панҷ (šastu panj)
66 шасту шаш (šastu šaš)
67 шасту ҳафт (šastu haft)
68 шасту ҳашт (šastu hašt)
69 шасту нуҳ (šastu nuh)
70 ҳафтод (haftod)
71 ҳафтоду як (haftodu yak)
72 ҳафтоду ду (haftodu du)
73 ҳафтоду се (haftodu se)
74 ҳафтоду чор (haftodu čor), (dated) ҳафтоду чаҳор (haftodu čahor)
75 ҳафтоду панҷ (haftodu panj)
76 ҳафтоду шаш (haftodu šaš)
77 ҳафтоду ҳафт (haftodu haft)
78 ҳафтоду ҳашт (haftodu hašt)
79 ҳафтоду нуҳ (haftodu nuh)
80 ҳаштод (haštod)
81 ҳаштоду як (haštodu yak)
82 ҳаштоду ду (haštodu du)
83 ҳаштоду се (haštodu se)
84 ҳаштоду чор (haštodu čor), (dated) ҳаштоду чаҳор (haštodu čahor)
85 ҳаштоду панҷ (haštodu panj)
86 ҳаштоду шаш (haštodu šaš)
87 ҳаштоду ҳафт (haštodu haft)
88 ҳаштоду ҳашт (haštodu hašt)
89 ҳаштоду нуҳ (haštodu nuh)
90 навад (navad)
91 наваду як (navadu yak)
92 наваду ду (navadu du)
93 наваду се (navadu se)
94 наваду чор (navadu čor), (dated) наваду чаҳор (navadu čahor)
95 наваду панҷ (navadu panj)
96 наваду шаш (navadu šaš)
97 наваду ҳафт (navadu haft)
98 наваду ҳашт (navadu hašt)
99 наваду нуҳ (navadu nuh)
100 сад (sad) садум (sadum)
200 дусад (dusad) дусадум (dusadum)
300 сесад (sesad) сесадум (sesadum)
400 чорсад (čorsad) чорсадум (čorsadum)
500 панҷсад (panjsad) панҷсадум (panjsadum)
600 шашсад (šašsad) шашсадум (šašsadum)
700 ҳафтсад (haftsad) хафтсадум (xaftsadum)
800 ҳаштсад (haštsad) ҳаштсадум (haštsadum)
900 нӯҳсадум (nühsadum) навадум (navadum)
1,000 ҳазор (hazor) ҳазорум (hazorum)
1,000,000 (106) милён (milyon)
1,000,000,000 (109) миллиард (milliard)

local export = { numbers = {} }

local numbers = export.numbers

numbers[0] = {
	cardinal = "сифр",
}
numbers[1] = {
	cardinal = "як",
	ordinal = { "аввал", "якум" },
}
numbers[2] = {
	cardinal = "ду",
	ordinal = "дуюм",
}
numbers[3] = {
	cardinal = "се",
	ordinal = "сеюм",
}
numbers[4] = {
	cardinal = { "чор", "чаҳор<q:dated>" },
	ordinal = { "чорум", "чаҳорум<q:dated>" },
}
numbers[5] = {
	cardinal = "панҷ",
	ordinal = "панҷум",
}
numbers[6] = {
	cardinal = "шаш",
	ordinal = "шашум",
}
numbers[7] = {
	cardinal = "ҳафт",
	ordinal = "ҳафтум",
}
numbers[8] = {
	cardinal = "ҳашт",
	ordinal = "ҳаштум",
}
numbers[9] = {
	cardinal = "нуҳ",
	ordinal = "нуҳум",
}
numbers[10] = {
	cardinal = "даҳ",
	ordinal = "даҳум",
}
numbers[11] = {
	cardinal = "ёздаҳ",
	ordinal = "ёздаҳум",
}
numbers[12] = {
	cardinal = "дувоздаҳ",
	ordinal = "дувоздаҳум",
}
numbers[13] = {
	cardinal = "сенздаҳ",
	ordinal = "сенздаҳум",
}
numbers[14] = {
	cardinal = "чордаҳ",
	ordinal = "чордаҳум",
}
numbers[15] = {
	cardinal = "понздаҳ",
	ordinal = "понздаҳум",
}
numbers[16] = {
	cardinal = "шонздаҳ",
	ordinal = "шонздаҳум",
}
numbers[17] = {
	cardinal = "ҳабдаҳ",
	ordinal = "ҳабдаҳум",
}
numbers[18] = {
	cardinal = "ҳаждаҳ",
	ordinal = "ҳаждаҳум",
}
numbers[19] = {
	cardinal = "нуздаҳ",
	ordinal = "нуздаҳум",
}

local function unpack_ipairs(t)
	local i = 0
	return function()
		i = i + 1
		if t[i] then
			return i, unpack(t[i])
		end
	end
end

for i, tens_cardinal in unpack_ipairs({
	{ "бист" },
	{ "сӣ" },
	{ "чил" },
	{ "панҷох" },
	{ "шаст" },
	{ "ҳафтод" },
	{ "ҳаштод" },
	{ "навад" },
}) do
	local tens = (i + 1) * 10
	numbers[tens] = {
		cardinal = tens_cardinal,
	}
	local prefix = (tens_cardinal .. "у")

	for ones = 1, 9 do
		local number = {}
		numbers[tens + ones] = number

		local ones_cardinal = {}
		local temp = numbers[ones].cardinal
		if type(temp) == "string" then
			table.insert(ones_cardinal, temp)
		elseif type(temp) == "table" then
			ones_cardinal = numbers[ones].cardinal
		end
		local cardinals = {}
		for j, o_cardinal in ipairs(ones_cardinal) do
			if i == 2  then
				table.insert(cardinals, "сию " .. ones_cardinal[j])
			else
				table.insert(cardinals, prefix .. " " .. ones_cardinal[j])
			end
		end
		number.cardinal = cardinals
	end
end
numbers[100] = {
	cardinal = "сад",
	ordinal = "садум",
}
numbers[200] = {
	cardinal = "дусад",
	ordinal = "дусадум",
}
numbers[300] = {
	cardinal = "сесад",
	ordinal = "сесадум",
}
numbers[400] = {
	cardinal = "чорсад",
	ordinal = "чорсадум",
}
numbers[500] = {
	cardinal = "панҷсад",
	ordinal = "панҷсадум",
}
numbers[600] = {
	cardinal = "шашсад",
	ordinal = "шашсадум",
}
numbers[700] = {
	cardinal = "ҳафтсад",
	ordinal = "хафтсадум",
}
numbers[800] = {
	cardinal = "ҳаштсад",
	ordinal = "ҳаштсадум",
}
numbers[900] = {
	cardinal = "нӯҳсадум",
	ordinal = "навадум",
}
numbers[1000] = {
	cardinal = "ҳазор",
	ordinal = "ҳазорум",
}
numbers[1000000] = {
	cardinal = "милён",
}
numbers[1000000000] = {
	cardinal = "миллиард",
}

return export