Garbell d'Eratòstenes P75445


Statement
 

Graphic problem

pdf   zip

El garbell d’Eratòstenes és un algorisme que troba tots els nombres primers fins a un cert nombre NN. El procediment és el següent:

  1. Es crea una llista LL amb tots els nombres des de 22 fins a NN.

  2. Per a cada jj des de 2 fins a N\lfloor\sqrt{N}\rfloor, si jj encara es troba a LL, esborrem d’LL tots els múltiples de jj més grans que jj.

En acabar, només romandran a LL els nombres primers.

Per exemple, amb N=18N=18, inicialment L=[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]L = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]. Després de l’iteració amb j=2j=2, tenim L=[2,3,5,7,9,11,13,15,17]L = [2, 3, 5, 7, 9, 11, 13, 15, 17]. Després de l’iteració amb j=3j=3, tenim L=[2,3,5,7,11,13,17]L = [2, 3, 5, 7, 11, 13, 17]. L’iteració amb j=4j=4 no canvia LL perquè 4 no hi és. Ara l’algorisme s’atura perquè 55=25>N5 \cdot 5 = 25 > N.

Donats tres enters n,m,kn, m, k i dos colors pp i cc, heu de simular el garbell d’Eratòstenes per a N=nmN = n \cdot m, parant l’algorisme després de la iteració amb j=kj = k. Heu de pintar els nombres supervivents després de la iteració amb j=kj=k (que són primers si jj és prou gran) amb el color pp, i els altres amb el color cc.

Entrada

L’entrada té cinc línies. Les tres primeres contenen els enters positius nn, mm i kk, i les dues següents els colors pp i cc. Assumiu N2N \ge 2 i 2kN2 \le k \le \sqrt{N}.

Sortida

Dibuixeu una graella amb nn files i mm columnes, on cada casella té 10×1010 \times 10 píxels. Suposeu que disposem els nombres des d’1 fins a NN sobre aquesta graella, de manera que la primera fila té els nombres 1,,m1, \dots, m, la segona fila els nombres m+1,,2mm+1, \dots, 2m, etc. Les caselles corresponents a nombres que encara es troben a LL al final de l’algorisme s’han de pintar de color pp, i les altres (inclosa la casella 1) de color cc.

Public test cases
  • Input

    1
    18
    2
    Blue
    Yellow
    

    Output

    sample-1.png

     (180×10)

  • Input

    1
    18
    3
    Blue
    Yellow
    

    Output

    sample-2.png

     (180×10)

  • Input

    1
    18
    4
    Blue
    Yellow
    

    Output

    sample-3.png

     (180×10)

  • Input

    10
    15
    8
    DarkViolet
    LightSalmon
    

    Output

    sample-4.png

     (150×100)

  • Information
    Author
    Xavier Povill
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python