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

A KöMaL 2026. májusi informatika feladatai

Kérjük, ha még nem tetted meg, olvasd el a versenykiírást.


Feladat típusok elrejtése/megmutatása:


I-jelű feladatok

A beküldési határidő: 2026. június 15.. 24:00 (UTC+02:00).


I. 699. Táborozáskor a gyerekek egy csoportja kő-papír-olló játékot játszik. Egyszerre ketten játszanak, és a győztes \(\displaystyle +1\) pontot, a vesztes \(\displaystyle -1\) pontot kap az eddigi eredményéhez. Kezdetben mindenki 0 pontról indul.

Készítsünk programot i699 néven, amely minden játék után megadja az összes maximális ponttal rendelkező gyerek számát és sorszámait emelkedő sorrendben.

A program standard bemenetének első sorában a játékosok száma \(\displaystyle N\) (\(\displaystyle {1\leq N\leq 100}\)) és a lejátszott partik száma \(\displaystyle M\) (\(\displaystyle 1\leq M\leq 1000\)) található. A következő \(\displaystyle M\) sor mindegyike egy parti eredményét tartalmazza (\(\displaystyle 1\leq G_i\neq V_i\leq N\)), ami \(\displaystyle G_i\) nyerését és \(\displaystyle V_i\) vesztését jelenti.

A programmal a standard kimenetre írjuk ki \(\displaystyle M\) sorba az egyes partik utáni legtöbb ponttal rendelkező gyerekek létszámát és a sorszámukat szóközzel elválasztva.

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

(10 pont)


I. 700. Ez a feladat az előző tanévben elkezdett és az ebben a tanévben folytatott prímekkel kapcsolatos sorozat (I. 633.; I. 641. és I. 661., illetve I. 673., I.  693.) hatodik része. Most az alábbi speciális prímeket keressük az \(\displaystyle 1\;000\;000\) alatti prímszámok között: Bölcsföldi-prímek, Fibonacci-prímek, Kynea-prímek, Mersenne-prímek és Smarandache–Wellin-prímek. Lássuk e prímcsoportok definícióját:

Bölcsföldi-prím: Egy prímszám (tízes számrendszerben) Bölcsföldi-prím, ha: minden számjegye 2 vagy 3, a számjegyeinek száma prím, a számjegyek összege prím. Például a 223, ami prím, csak kettes és hármas számjegyekből áll, számjegyeinek száma 3, ami szintén prím, ahogy az összegük, a 7 is.

Fibonacci-prímek: a Fibonacci-sorozat prím tagjai. Például 89.

Kynea-prímek: A \(\displaystyle (2^n+1)^2-2\) alakú prímek. Például a 79, hiszen \(\displaystyle {(2^3+1)^2-2}=(8+1)2-2=9^2-2=81-2=79\), és 79 prím.

Mersenne-prímek: A \(\displaystyle 2^n-1\) alakú prímszámok. Például a 127, hiszen prím és \(\displaystyle 127=128-1=2^7-1\).

Smarandache–Wellin-prímek: Az első \(\displaystyle n\) prímszám decimális alakjának egymás után fűzésével keletkező prím. Például az első két prím egymás után fűzésével keletkező 23 ilyen, de az első háromból adódó 235 nem ilyen, mert nem prím.

  1. Készítsünk egy táblázatkezelő munkafüzetben prímek néven munkalapot, és munkánkat mentsük prim_6 néven a táblázatkezelő program alapértelmezett formátumában.
  2. primek1000000ig.txt fájlból illesszük be az A3-as cellától az \(\displaystyle 1\;000\;000\) alatti prímek listáját. Az első két sorba oszlopfeliratokat készíthetünk a számítások értelmezéséhez.
  3. Válogassuk ki az öt prímcsoport tagjait az \(\displaystyle 1\;000\;000\) alatti prímszámok közül. A számításokat ezen a munkalapon végezzük.
  4. Hozzunk létre egy eredmények nevű munkalapot, amelyen az A oszlop celláit töltsük fel 1-től egész számokkal addig, amennyi a speciális prímszámok darabszámának maximuma. A következő oszlopokban határozzuk meg cellák kihagyása nélkül, növekvő sorrendben:
    1. a B oszlopban a Bölcsföldi-prímeket;
    2. a C oszlopban a Fibonacci-prímeket;
    3. a D oszlopban a Kynea-prímeket;
    4. az E oszlopban a Mersenne-prímeket;
    5. az F oszlopban a Smarandache-Wellin-prímeket.
  5. A munkalap adattartományát formázzuk a minta szerint.
  6. Készítsük el az eredmények munkalapon az adott helyre a mintán látható táblázatot.
  7. Számítsuk ki és jelenítsük meg a hiányzó adatokat.
  8. primek munkalapon cseréljük le oszloponként az első 99 sor utáni képleteket az értékükre.

Segédszámításokat a prímek munkalapon végezhetünk. A megoldásban saját függvény vagy makró nem használható.

Beküldendő az i700.zip tömörtett állományban a munkafüzet az eredeti nevén xlsb formátumban (bináris munkafüzetként) és egy rövid dokumentáció, amelyben szerepel a kiválogatások módszere, a táblázatkezelő neve és verziószáma.

Letölthető fájl: primek1000000ig.txt

(10 pont)


I. 701. Egy négyzethálós területen útvonalakat kell létrehozni. Az útvonalak a terület valamely oldalán indulnak, és a terület egy másik oldalán végződnek. Az útvonalak az egymással oldalaikkal szomszédos cellákból állnak. Minden útvonalat egy prímszám jelöl azokban a cellákban, ahol csak egy útvonal halad át. Két útvonal merőlegesen keresztezheti egymást. Ekkor a kereszteződésben lévő cella a két útvonal számának szorzatát kapja. Az útvonalak nem haladnak a terület szélén, azt csak az útvonal két végén érintik.

Az 1. ábrán néhány útvonal látható egy \(\displaystyle 11\times 11\)-es négyzethálóban.

1. ábra

2. ábra

A feladat az útvonalak megfelelő létrehozása az útvonalak kezdő helyzete alapján. Ekkor az 1 ábrán látható négyzetháló esetében a kiindulás a 2. ábrán látható négyzetháló lenne.

Készítsünk programot i701 néven, amely elkészíti az útvonalakat a kiinduló négyzetháló alapján.

A program standard bemenetének első sorában a terület méretét megadó \(\displaystyle N\) szám (\(\displaystyle 10\leq N\leq 20\)) szerepel. A következő négy sor a terület egyes oldalainak celláit adja meg az óramutató járásával megegyező irányban haladva, a bal felső sarokból indulva. Mind a négy sorban \(\displaystyle N\) szám található szóközzel elválasztva: ha a szám nulla, akkor a terület adott pontja üres, egyébként egy prímszám. A bemenet minden esetben olyan, hogy abból az útvonalak a fenti szabályok alapján létrehozhatók.

A program standard kimenetére írjuk ki a létrehozott útvonalakat tartalmazó teljes területet. A kimenet egy \(\displaystyle N\times N\) méretű HTML táblázat legyen. A nulla értéket tartalmazó cellák maradjanak üresen.

Példa:

Beküldendő egy tömörített i701.zip állományban a program forráskódja és rövid dokumentációja, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

(10 pont)


I. 702. Ez a feladat unokatestvére az előző tanévben elkezdett és az ebben a tanévben folytatott prímekkel kapcsolatos sorozatnak. Most néhány fajta speciális számot keresünk az \(\displaystyle 1\;000\;000\) alatti pozitív természetes számok között. Név szerint: automorfikus számok, Cullen-számok, Harshad-számok, interprímek, Szábit-számok és a Zuckerman-számok. Lássuk ezek definícióit!

Az automorfikus számok olyan számok, amelynek négyzete ugyanarra a számra végződik, mint maga a szám. Például: \(\displaystyle 5^2=25\), \(\displaystyle 6^2=36\), \(\displaystyle 76^2= 5776\), és \(\displaystyle 890\;625^2=793\;212\;890\;625\), így az 5, 6, 76 és \(\displaystyle 890\;625\) mind automorfikus számok.

Cullen-számnak azokat a természetes számokat nevezzük, amelyek felírhatók \(\displaystyle n\cdot 2^n+1\) alakban, ahol \(\displaystyle n\) természetes szám. Például \(\displaystyle n=4\) esetén \(\displaystyle 4\cdot 2^4+1=4\cdot 16+1=65\) ilyen szám.

Harshad-szám vagy más néven Niven-szám minden szám, amely az adott számrendszerben osztható saját számjegyeinek összegével. Például a 42-es szám ilyen, hiszen a számjegyei összege 6, és 42 osztható 6-tal.

Az interprímek két egymást követő, páratlan prímszám számtani közepei. Például a 9 interprím, mert 7 és 11 átlaga.

A Szábit-számok, más néven Thabit-számok, Szábit ibn Kurra-számok vagy 321-számok olyan pozitív egész számok, amelyek felírhatók \(\displaystyle 3\cdot 2^n-1\) alakban, ahol \(\displaystyle n\) természetes szám. Például \(\displaystyle n=10\) esetén \(\displaystyle 3\cdot 2^{10}-1=3\cdot 1024-1=3072-1=3071\) Szábit-szám.

A Zuckerman-számok olyan természetes számok, amelyek oszthatók számjegyeik szorzatával. Például a tízes számrendszerben a 212 Zuckerman-szám, mivel \(\displaystyle 2\cdot 1\cdot 2=4\), és a 212 osztható 4-gyel.

  1. Készítsünk egy táblázatkezelő munkafüzetben specegesz néven munkalapot, és munkánkat mentsük specialis_egeszek néven a táblázatkezelő program alapértelmezett formátumában.
  2. Töltsük fel az A2:A1000000 tartományt növekvő sorrendben a pozitív egészekkel 1-től \(\displaystyle 999\;999\)-ig
  3. A primek1000000ig.txt fájlból illesszük be a B2-es cellától az \(\displaystyle 1\;000\;000\) alatti prímek listáját. Az első sorba oszlopfeliratokat készíthetünk a számítások értelmezéséhez.
  4. Válogassuk ki a hat számcsoport \(\displaystyle 1\;000\;000\) alatti elemeit. A számításokat ezen a munkalapon végezzük.
  5. Hozzunk létre egy eredmények nevű munkalapot, amelyen az A oszlop celláit töltsük fel 1-től egész számokkal addig, amennyi a speciális számcsoportok darabszámának maximuma. A következő oszlopokban határozzuk meg cellák kihagyása nélkül, növekvő sorrendben:
    1. a B oszlopban az automorfikus számokat;
    2. a C oszlopban a Cullen-számokat;
    3. a D oszlopban a Harshad-számokat;
    4. az E oszlopban az interprímeket;
    5. az F oszlopban a Szábit-számokat;
    6. a G oszlopban a Zuckerman-számokat.
  6. A munkalap adattartományát formázzuk a minta szerint.
  7. A specegeszek munkalapon cseréljük le oszloponként az első 99 sor utáni képleteket az értékükre.

Segédszámításokat a prímek munkalapon végezhetünk. A megoldásban saját függvény vagy makró nem használható.

Beküldendő az i702.zip tömörtett állományban a munkafüzet az eredeti nevén xlsb formátumban (bináris munkafüzetként) és egy rövid dokumentáció, amelyben szerepel a kiválogatások módszere, a táblázatkezelő neve és verziószáma.

Letölthető fájl: primek1000000ig.txt

(10 pont)


Figyelem!

Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.