Ak máte akékoľvek otázky ohľadom tejto úlohy, napíšte Dávidovi na [email protected]
Tomi išiel domov zo školy, a rozmýšľal, čo by robil, ak by sa dostal na opustený ostrov. Založil by si oheň, ulovil ryby, postavil príbytok, … Keď si už myslel, že má všetko premyslené a nič ho neprekvapí, uvedomil si, že by nemal ako programovať. A keby si aj začal písať programy na drevo, nemal by ako zistiť, či niekde neurobil chybu. Tomi by bez programovania neprežil, a preto si povedal, že vymyslí nový programovací jazyk, ktorý bude pohodlný, bude sa ľahko kresliť na drevo a bude sa dať ľahko ručne simulovať jeho vykonávanie. Nazval ho Kreslo (pretože sa kreslí a je pohodlný). Tomi by rád vedel, ako dobrý je jeho jazyk a čo všetko sa v ňom dá naprogramovať. Na to potrebuje vašu pomoc.
Úloha
Kreslo je veľmi jednoduchý jazyk. Pracuje iba s celými číslami, ktoré vie načítavať zo vstupu a vypisovať na výstup. Aby sa Tomimu ľahko kreslilo, celý program je nakreslený do mriežky a každá inštrukcia zaberá jeden štvorec. Podrobnosti o tom, ako tento jazyk funguje a ako v ňom písať programy nájdete na ksp.sk/~prask/specialne/4/1/3/manual.pdf
My našťastie nie sme na opustenom ostrove, a preto môžeme používať elektronický editor, ktorý dokáže aj simulovať beh programu. Nájdete ho spolu s ukážkovými programami na adrese ksp.sk/~prask/specialne/4/1/3/.
Vašou úlohou bude vyriešiť nasledujúce podúlohy a odovzdať ZIP súbor, ktorý obsahuje zdrojové kódy vašich riešení (dajú sa stiahnuť z editora). ZIP by mal obsahovať súbory 1.kr
až 5.kr
s vašimi riešeniami jednotlivých podúloh.
Podúlohy
- (1 bod) Na vstupe je zadané číslo \(a\) \((1 \leq a \leq 1\,000)\). Vypíšte číslo \(7\) ak \(a\) je deliteľné číslom \(7\) (je to násobok sedmičky), inak vypíšte číslo \(a\) nezmenené.
Input:
21
Output:
7
Input:
47
Output:
47
- (3 body) Na vstupe je zadané číslo \(n\) \((1 \leq n \leq 100)\). Vypíšte čísla od \(n\) do \(1\) v klesajúcom poradí.
Input:
7
Output:
7 6 5 4 3 2 1
- (4 body) Na vstupe sú zadané čísla \(x\) a \(y\) \((0 \leq x \leq y \leq 100)\). Vypíšte v rastúcom poradí všetky čísla od \(x\) do \(y\) (vrátane), ktoré sú násobkami čísla \(3\).
Input:
39 47
Output:
39 42 45
- (4 body) Na vstupe je zadané číslo \(n\) \((1 \leq n \leq 1000)\). Vypíšte najmenšie číslo \(a\), \(1 < a \leq n\) ktoré delí \(n\) (zvyšok po delení \(n\) číslom \(a\) je \(0\)).
Input:
35
Output:
5
Deliteľmi čísla 35 sú čísla 1, 5, 7 a 35. Keďže 1 vypísať nemôžeme, najmenší deliteľ je číslo 5.
(3 body) Prvočísla sú prirodzené čísla väčšie ako 1, ktoré nie sú deliteľné žiadnym číslom od 2 po \(p-1\). Napríklad čísla 2, 5, 7, 23 sú prvočísla, čísla 1, 4, 50, 99 nie sú.
Na vstupe je zadané číslo \(n\) \((2 \leq n \leq 100)\). Vypíšte všetky prvočísla z rozsahu od \(2\) po \(n\) v rastúcom poradí.
Input:
11
Output:
2 3 5 7 11
Odovzdávanie
Na odovzdávanie sa musíš prihlásiť
Otázky a diskusia
Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.