This module contains data on various types of numbers in เกาหลี.

จำนวน Native isol. Native attr. Sino-Korean Hanja เชิงอันดับที่
0 (สแลง) (ppang) (yeong), (ryeong), (เลขโดด, ไม่ใช่จำนวน) (gong) ,
1 하나 (hana) (han) (il) 첫째 (cheotjjae)
2 (dul) (du) (i) 둘째 (duljjae)
3 (set) (se), (ล้าสมัย) (seok), (โบราณ) (seo) (sam) 셋째 (setjjae)
4 (net) (ne), (ล้าสมัย) (neok), (โบราณ) (neo) (sa) 넷째 (netjjae)
5 다섯 (daseot) 다섯 (daseot), (โบราณ) (dat) (o) 다섯째 (daseotjjae)
6 여섯 (yeoseot) 여섯 (yeoseot), (โบราณ) (yeot) (yuk), (ryuk) 여섯째 (yeoseotjjae)
7 일곱 (ilgop) 일곱 (ilgop) (chil) 일곱째 (ilgopjjae)
8 여덟 (yeodeol) 여덟 (yeodeol) (pal) 여덟째 (yeodeoljjae)
9 아홉 (ahop) 아홉 (ahop) (gu) 아홉째 (ahopjjae)
10 (yeol) (yeol) (sip) 열째 (yeoljjae)
11 열하나 (yeolhana) 열한 (yeolhan) 십일 (sibil) 十一
12 열둘 (yeoldul) 열두 (yeoldu) 십이 (sibi) 十二
13 열셋 (yeolset) 열세 (yeolse) 십삼 (sipsam) 十三
14 열넷 (yeollet) 열네 (yeolle) 십사 (sipsa) 十四
15 열다섯 (yeoldaseot) 열다섯 (yeoldaseot) 십오 (sibo) 十五
16 열여섯 (yeoryeoseot) 열여섯 (yeoryeoseot) 십육 (sibyuk), 십륙 (simnyuk) 十六
17 열일곱 (yeorilgop) 열일곱 (yeorilgop) 십칠 (sipchil) 十七
18 열여덟 (yeoryeodeol) 열여덟 (yeoryeodeol) 십팔 (sip'pal) 十八
19 열아홉 (yeorahop) 열아홉 (yeorahop) 십구 (sipgu) 十九
20 스물 (seumul) 스무 (seumu) 이십 (isip) 二十
30 서른 (seoreun) 서른 (seoreun) 삼십 (samsip) 三十
40 마흔 (maheun) 마흔 (maheun) 사십 (sasip) 四十
50 (swin) (swin) 오십 (osip) 五十
60 예순 (yesun) 예순 (yesun) 육십 (yuksip), 륙십 (ryuksip) 六十
70 일흔 (ilheun) 일흔 (ilheun) 칠십 (chilsip) 七十
80 여든 (yeodeun) 여든 (yeodeun) 팔십 (palsip) 八十
90 아흔 (aheun) 아흔 (aheun) 구십 (gusip) 九十
100 (baek)
1,000 (cheon)
10,000 (man)
100,000 십만 (simman) 十萬
1,000,000 (106) 백만 (baengman) 百萬
10,000,000 (107) 천만 (cheonman) 千萬
100,000,000 (108) (eok)
1,000,000,000 (109) 십억 (sibeok) 十億
10,000,000,000 (1010) 백억 (baegeok) 百億
100,000,000,000 (1011) 천억 (cheoneok) 千億
1012 (jo)
1016 (gyeong)
1020 (hae)
1024 (ja)
1028 (yang)
1032 (gu)
1036 (gan)
1040 (jeong)
1044 (jae)
1048 (geuk)
1052 항하사 (hanghasa) 恒河沙
1056 아승기 (aseunggi) 阿僧祇
1060 나유타 (nayuta) 那由他
1064 불가사의 (bulgasaui) 不可思議
1068 무량대수 (muryangdaesu), 무량수 (muryangsu) 無量大數, 無量數

local export = {}
local m_numutils = require("Module:number list/utils")
local power_of = m_numutils.power_of

export.additional_number_types = {
	{ key = "isol", display = "Native [[isolation|isol.]]", before = "ordinal" },
	{ key = "attr", display = " Native [[attributive|attr.]]", before = "ordinal" },
	{ key = "sino", display = "[[Sino-Korean|Sino-Korean]]", before = "ordinal" },
	{ key = "hanja", display = "[[hanja|Hanja]]", before = "ordinal" },
	{ key = "notes", display = "Notes", after = "ordinal" },
}

local numbers = {}
export.numbers = numbers

local ordinal_suffix = "째"
local tens_native = "열"
local tens_sino = "십"
local tens_hanja = "十"

-- Delete any number types that don't apply.

numbers[0] = {
	isol = "빵<q:สแลง>",
	sino = { "영", "령", "공<q:เลขโดด, ไม่ใช่จำนวน>"},
	hanja = {"零", "空"},
}

numbers[1] = {
	isol = "하나",
	attr = "한",
	sino = "일",
	hanja = "一",
	ordinal = "첫째",
}

numbers[2] = {
	isol = "둘",
	attr = "두",
	sino = "이",
	hanja = "二",
}

numbers[3] = {
	isol = {"셋" },
	attr = {"세", "석<q:ล้าสมัย>", "서<q:โบราณ>"},
	sino = "삼",
	hanja = "三",
}

numbers[4] = {
	isol = {"넷" },
	attr = {"네", "넉<q:ล้าสมัย>", "너<q:โบราณ>"},
	sino = "사",
	hanja = "四",
}

numbers[5] = {
	isol = "다섯",
	attr = {"다섯", "닷<q:โบราณ>"},
	sino = "오",
	hanja = "五",
}

numbers[6] = {
	isol = "여섯",
	attr = {"여섯", "엿<q:โบราณ>"},
	sino = {"육", "륙"},
	hanja = "六",
}

numbers[7] = {
	isol = "일곱",
	attr = "일곱",
	sino = "칠",
	hanja = "七",
}

numbers[8] = {
	isol = "여덟",
	attr = "여덟",
	sino = "팔",
	hanja = "八",
}

numbers[9] = {
	isol = "아홉",
	attr = "아홉",
	sino = "구",
	hanja = "九",
}

numbers[10] = {
	isol = "열",
	attr = "열",
	sino = "십",
	hanja = "十",
}

numbers[20] = {
	isol = "스물",
	attr = "스무",
}

numbers[30] = {
	isol = "서른",
	attr = "서른",
}

numbers[40] = {
	isol = "마흔",
	attr = "마흔",
}

numbers[50] = {
	isol = "쉰",
	attr = "쉰",
}

numbers[60] = {
	isol = "예순",
	attr = "예순",
}

numbers[70] = {
	isol = "일흔",
	attr = "일흔", 
}

numbers[80] = {
	isol = "여든",
	attr = "여든",
}

numbers[90] = {
	isol = "아흔",
	attr = "아흔",
}

for number = 2, 2 do
	numbers[number].ordinal = numbers[number].isol .. ordinal_suffix
end

for number = 3, 4 do
	numbers[number].ordinal = numbers[number].isol[1] .. ordinal_suffix
end

for number = 5, 10 do
	numbers[number].ordinal = numbers[number].isol .. ordinal_suffix
end

for number = 11, 12 do
	base_num = number - 10
	numbers[number] = {
		isol = tens_native .. numbers[base_num].isol,
		attr = tens_native .. numbers[base_num].attr,
		sino = tens_sino .. numbers[base_num].sino,
		hanja = tens_hanja .. numbers[base_num].hanja,
	}
end

for number = 13, 14 do
	base_num = number - 10
	numbers[number] = {
		isol = tens_native .. numbers[base_num].isol[1],
		attr = tens_native .. numbers[base_num].attr[1],
		sino = tens_sino .. numbers[base_num].sino,
		hanja = tens_hanja .. numbers[base_num].hanja,
	}
end

for number = 15, 15 do 
	base_num = number - 10
	numbers[number] = {
		isol = tens_native .. numbers[base_num].isol,
		attr = tens_native .. numbers[base_num].attr[1],
		sino = tens_sino .. numbers[base_num].sino,
		hanja = tens_hanja .. numbers[base_num].hanja,
	}
end

for number = 16, 16 do 
	base_num = number - 10
	numbers[number] = {
		isol = tens_native .. numbers[base_num].isol,
		attr = tens_native .. numbers[base_num].attr[1],
		sino = {tens_sino .. numbers[base_num].sino[1], tens_sino .. numbers[base_num].sino[2]},
		hanja = tens_hanja .. numbers[base_num].hanja,
	}
end

for number = 17, 19 do
	base_num = number - 10
	numbers[number] = {
		isol = tens_native .. numbers[base_num].isol,
		attr = tens_native .. numbers[base_num].attr,
		sino = tens_sino .. numbers[base_num].sino,
		hanja = tens_hanja .. numbers[base_num].hanja,
	}
end

for number = 2, 9  do
	num = number * 10
	if number ~= 6 then
		numbers[num].sino = numbers[number].sino .. tens_sino
	else 
		numbers[num].sino = {numbers[number].sino[1] .. tens_sino, numbers[number].sino[2] .. tens_sino}
	end
	numbers[num].hanja = numbers[number].hanja .. tens_hanja
end

numbers[100] = {
	sino = "백",
	hanja = "百",
}

numbers[1000] = {
	sino = "천",
	hanja = "千",
}

numbers[10000] = {
	sino = "만",
	hanja = "萬",
}

local ten_thousand_sino = "만"
local ten_thousand_hanja = "萬"

for number = 1, 3 do
	num = 10 ^ number
	numbers[10000 * num] = {
		sino = numbers[num].sino .. ten_thousand_sino,
		hanja = numbers[num].hanja .. ten_thousand_hanja,
	}
end

numbers[10^8] = {
	sino = "억",
	hanja = "億",
}

local eok_sino = "억"
local eok_hanja = "億"

for number = 1, 3 do
	num = 10 ^ number
	base = 10 ^ 8
	numbers[100000000 * num] = {
		sino = numbers[num].sino .. eok_sino,
		hanja = numbers[num].hanja .. eok_hanja,
	}
end

numbers[10^12] = {
	sino = "조",
	hanja = "兆",
}


--[[local jo_sino = "조"
local jo_hanja = "兆"

for number = 1, 3 do
	num = 10 ^ number
	base = 10 ^ 12
	numbers[base * num].sino = numbers[num].sino .. jo_sino
	numbers[base * num].hanja = numbers[num].hanja .. jo_hanja
end]]--

numbers[10^16] = {
	sino = "경",
	hanja = "京",
}

--[[local gyeong_sino = "경"
local gyeong_hanja = "京"

for number = 1, 3 do
	num = 10 ^ number
	base = 10 ^ 16
	numbers[base * num].sino = numbers[num].sino .. gyeong_sino
	numbers[base * num].hanja = numbers[num].hanja .. gyeong_hanja
end]]--

numbers[power_of(20)] = {
	sino = "해",
	hanja = "垓",
}

numbers[power_of(24)] = {
	sino = "자",
	hanja = "秭",
}

numbers[power_of(28)] = {
	sino = "양",
	hanja = "穰",
}

numbers[power_of(32)] = {
	sino = "구",
	hanja = "溝",
}

numbers[power_of(36)] = {
	sino = "간",
	hanja = "澗",
}

numbers[power_of(40)] = {
	sino = "정",
	hanja = "正",
}

numbers[power_of(44)] = {
	sino = "재",
	hanja = "載",
}

numbers[power_of(48)] = {
	sino = "극",
	hanja = "極",
}

numbers[power_of(52)] = {
	sino = "항하사",
	hanja = "恒河沙",
}

numbers[power_of(56)] = {
	sino = "아승기",
	hanja = "阿僧祇",
}

numbers[power_of(60)] = {
	sino = "나유타",
	hanja = "那由他",
}

numbers[power_of(64)] = {
	sino = "불가사의",
	hanja = "不可思議",
}

numbers[power_of(68)] = {
	sino = {"무량대수", "무량수"},
	hanja = {"無量大數", "無量數"},
}

return export