-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy path1279.poti
47 lines (40 loc) · 1.42 KB
/
1279.poti
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
35
36
37
38
39
40
41
42
43
44
45
46
47
somar(digitos: Lista[Inteiro], soma: Inteiro): Inteiro =
se digitos <> [] entao
somar(digitos.descarte(2), soma + digitos[1])
senão
soma
fim
soma_par(digitos: Lista[Inteiro]) = somar(digitos.inverta.descarte(1), 0)
soma_impar(digitos: Lista[Inteiro]) = somar(digitos.inverta, 0)
div4(digitos: Lista[Inteiro]) = (digitos[2] * 10 + digitos[1]) mod 4 == 0
div5(digitos: Lista[Inteiro]) = digitos[1] mod 5 == 0
div100(digitos: Lista[Inteiro]) = digitos.pegue(2) == [0, 0]
div400(digitos: Lista[Inteiro]) = div100(digitos) e div4(digitos.descarte(2))
div11(digitos: Lista[Inteiro]) = (soma_par(digitos) - soma_impar(digitos)) mod 11 == 0
div3(digitos: Lista[Inteiro]) = digitos.injete(0)(_ + _) mod 3 == 0
var primeiro := verdadeiro
var entrada := leia_texto
enquanto não eof faça
digitos = entrada.inverta.lista.mapeie(_ - '0')
se primeiro entao
primeiro := falso
senão
escreva ""
fim
bissexto = div4(digitos) e não div100(digitos) ou div400(digitos)
bulukulu = bissexto e div5(digitos) e div11(digitos)
huluculu = div5(digitos) e div3(digitos)
se bissexto então
escreva "This is leap year."
fim
se huluculu então
escreva "This is huluculu festival year."
fim
se bulukulu então
escreva "This is bulukulu festival year."
fim
se não bissexto e não huluculu então
escreva "This is an ordinary year."
fim
entrada := leia_texto
fim