Краткое резюме
0–20 имеют уникальные формы — просто выучи их.
um/uma (1) и dois/duas (2) меняются по роду того, что считаешь (как русские один/одна, два/две).
21–99: десяток + e + единица — vinte e um, quarenta e sete.
100 в одиночку = cem; 101–199 = cento e… (cento e dez).
200–900 тоже согласуются по роду: duzentos / duzentas.
e («и») связывает каждую часть: trezentos e quarenta e cinco.
1000 = mil — никогда «um mil».
По телефону бразильцы говорят meia (= полдюжины) вместо 6.