Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 620. feladat (2024. március)

I. 620. Legyen egy helyi értékes számrendszerben az első helyiérték \(\displaystyle 1\), a további helyiértékeken pedig a prímszámok növekvő sorozata. Az ebben a számrendszerben felírt \(\displaystyle 10101_p\) ötjegyű szám esetén a helyi értékek \(\displaystyle 7\), \(\displaystyle 5\), \(\displaystyle 3\), \(\displaystyle 2\), \(\displaystyle 1\), azaz a szám értéke \(\displaystyle 7\cdot 1+3\cdot 1+1=11\). Tetszőleges nemnegatív egész szám felírható az így megadott számrendszerben, de a felírás nem egyértelmű. Például a \(\displaystyle 11\) felírható \(\displaystyle 100000_{p}\) alakban is. Tegyük egyértelművé az átváltást úgy, hogy minden esetben azt a felírást választjuk, amelyben csak \(\displaystyle 0\)-s és \(\displaystyle 1\)-es számjegy szerepel, és emellett a legkevesebb \(\displaystyle 1\)-es fordul elő. Így például minden prímszám pontosan egy \(\displaystyle 1\)-esből és \(\displaystyle 0\)-kból áll.

Készítsünk programot, amely bekér egy pozitív egész számot, majd megadja a szám felírását a bemutatott számrendszerben. A program a standard bemenet egyetlen sorából olvassa be a számot (\(\displaystyle {1\leq a\leq 100\,000}\)), majd a standard kimenet egyetlen sorában adja meg a szám felírását a fent leírt módszerrel.

Példák:

BemenetKimenet
26 1000000100
57 10000000000000101
100 10000000000000000000000100

A megoldáshoz felhasználható a https://t5k.org/lists/small/10000.txt címen megtalálható szöveges állomány, amely az első 10000 prímszámot tartalmazza. Az állomány letöltés után szerkeszthető, a feldolgozás szempontjából felesleges sorok törölhetők.

Beküldendő egy tömörített i620.zip állományban a program forráskódja és a prímszámokat tartalmazó állomány, valamint egy rövid dokumentáció, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

(10 pont)

A beküldési határidő 2024. április 15-én LEJÁRT.


Mintamegoldásként Szabó Imre Bence 10. évfolyamos, budapesti versenyző C++ nyelven készült megoldását (i620.cpp, primszamok.txt), valamint Farkas Roland 12. osztályos, egri tanuló megoldását (i620.py, 10000.txt) adjuk közre.


Statisztika:

18 dolgozat érkezett.
10 pontot kapott:Farkas Roland, Szabó Imre Bence.
8 pontot kapott:5 versenyző.
6 pontot kapott:1 versenyző.
5 pontot kapott:1 versenyző.
0 pontot kapott:6 versenyző.
Nem számítjuk a versenybe a születési dátum vagy a szülői nyilatkozat hiánya miatt:3 dolgozat.

A KöMaL 2024. márciusi informatika feladatai