Informatică, întrebare adresată de lilicole, 8 ani în urmă

E ok?

Sa se scrie un program care citeste de la tastatura un nr natural n si apoi un sir de n numere naturale si determina cel mai mare numar prim din sir si de cate ori apare

Anexe:

Rayzen: Nu cred ca e bine.
Rayzen: Nu ai facut verificarea daca numerele sunt prime.
Rayzen: Poate ai aplicat alta metoda, dar poate nu l-ai terminat cum trebuie.
lilicole: Pai am facut negatia aia la primul daca pt a verifica

Răspunsuri la întrebare

Răspuns de Dvdx
1

Răspuns:

Da e ok

Explicație:

Răspuns de Paddon
2

Nu-i ok. In primul rand n-ai verificat daca un numar e prim. Apoi n-ai numarat de cate ori apare numarul prim. In ultimul rand, ai o bucla infinita (cat timp n != 0)

Codul corect ar fi:

citeste n

s = 0

maxi = -1

pentru i <- 1, n executa

{

   citeste x

   prim = 1

   daca x <= 1

       prim = 0

   altfel daca x % 2 == 0 si x != 2

       prim = 0

   altfel

   {

       d = 3

       cat timp d * d <= x executa

       {

           daca x % d == 0

               prim = 0

           d += 2

       }

       daca prim si x > maxi

       {

           maxi = x

           s = 1

       }

       daca x == maxi

           s += 1

   }

}

scrie "Cel mai mare prim: ", maxi

scrie "Apare de ", s, " ori."


lilicole: Pai la primul daca e verificarea pt numar prim
Paddon: Nu e. Verifica cu n = 12
Paddon: Pentru orice n tie iti va returna n - 1
Paddon: Editez acum si scriu codul corect daca vrei
lilicole: Daca vrei poti sa o faci chiar as vrea sa vad cum s ar rezolva
Paddon: L-am scris. Ar fi mai usor daca ai crea o functie care sa verifice daca e prim, decat s-o faci in "codul principal"
Paddon: Daca nu se intelege ce face si de ce intreaba si o sa incerc sa-ti explic
lilicole: Am inteles

Am mai pus intrebarea dinainte tot la fel sa intreb daca e corect sau nu algoritmul
lilicole: Mersi mult
Paddon: Cu placere
Alte întrebări interesante