Mathematical and Physical Journal
for High Schools
Issued by the MATFUND Foundation
Already signed up?
New to KöMaL?

Problem I. 511. (May 2020)

I. 511.  

(10 pont)

Deadline expired on June 10, 2020.


Sorry, the solution is available only in Hungarian. Google translation

A program megoldása alapvetően jól sikerült, bár néhány rutinos versenyzőt becsapott. Alapos átolvasás és a szöveg pontos megértése kellett a hibátlan megoldáshoz.

Azok a számok, amelyek nem oszthatók a választott számmal bátran mondahtók bármikor a játék folyamán. Ezenkívül a választott szám oszópárjainak egyike is kimondható. Négyzetszámok esetén a négyzetgyök is mondható, hiszen egyik elhangzott számmal megszorozva sem adja a választott számot. A megoldáshoz tehát a szám osztóit kellett meghatározni, majd ezután a nála nem nagyobb nem osztókat, az osztópárok számát, illetve azt, hogy a szám négyzetszám-e. Egy lehetséges megoldás Python nyelven:

def hanyjo(szam) :
    jo = 0
    for i in range(1,szam+1) :       # a számok 1-től szam-ig
        if szam % i != 0 : jo += 1   # a nem osztók száma, vagyis amik bátran mondhatók
    nem = szam - jo # a többi szám   # a többi szám
    if nem % 2 == 1 :                # ha a szám négyzetszám, akkor a négyzetgyöke szintén jó
        jo += 1
        nem -= 1
    return jo + nem // 2             # ennyi számot lehet a játékban mondani

szam = int(input())
if hanyjo(szam) % 2 ==  0 : print(2)
else : print(1)


Statistics:

12 students sent a solution.
10 points:Kaltenecker Balázs Bence, Mócsy Mátyás, Szabó Barbara Noémi, Tóth Lilla Eszter , Ürmössy Dorottya, Vadász Levente, Vörös 314 László.
9 points:Horcsin Bálint.
8 points:2 students.
6 points:1 student.
5 points:1 student.

Problems in Information Technology of KöMaL, May 2020