- Pradinių duomenų failas:
- nuliai.in
- Rezultatų failas:
- nuliai.out
- Laiko apribojimas:
- 2 s.
- Atminties apribojimas:
- 16 Mb.
Užduotis
Manote, kad nulis – tai niekas? Netiesa! Naudojant tik nulius ir aritmetinius veiksmus, galima užrašyti bet kokį natūralųjį skaičių.
Vien sudėtimi ir daugyba čia neišsiversi. Žinome, kad 0*0=0+0=0. Todėl tenka kviestis šauktuką, kuris žymi faktorialą.
Skaičiaus n faktorialas lygus visų skaičių nuo 1 iki n sandaugai: n!=1*2*3*…*n. Tačiau susitarta, kad nulio faktorialas lygus vienam: 0! = 1. Taigi, faktorialas gali iš tiesų pagelbėti. Pavyzdžiui:
8 = (0! + 0! + 0!)! + 0! + 0! = 3! + 1 + 1 = 2*3 + 2 arba
8 = \((0!+0!)^{0!+0!+0!}\) = \(2^{3}\)
Pastaba. Skaičiuojant reiškinio reikšmę svarbu žinoti operacijų prioritetus. Jeigu nėra skliaustų, tuomet pirma apskaičiuojamas faktorialas, po to pakeliama laipsniu, tuomet dauginama ir galiausiai sudedama.
Duotas teigiamas sveikas skaičius. Parašykite programą, kuri suskaičiuotų kokiu mažiausiu nulių skaičiumi galima užrašyti duotąjį skaičių, jei konstruojant skaičių iš nulių galima naudoti sudėties, daugybos, kėlimo laipsniu ir faktorialo veiksmus bei skliaustus.
Pradiniai duomenys
Pradinių duomenų faile pateiktas natūralusis skaičius N <= 20000.
Rezultatai
Pirmoje rezultatų failo eilutėje įrašykite vieną skaičių – mažiausią galimą nulių skaičių reiškinyje, kuriuo galima užrašyti skaičių N.
Pavyzdžiai
Pradiniai duomenys | Rezultatai | Paaiškinimai |
---|---|---|
1 |
1 |
0! |
10 |
6 |
\((0!+0!+0!)^{0!+0!}\)+0!=\(3^{2}\)+1=10 |
12 |
5 |
(0!+0!+0!)!*(0!+0!)=3!*2=12 |
8 |
5 |
\((0!+0!)^{0!+0!+0!}\)=\(2^{3}\)=8 |