3622 - Perechi Pare: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/3622/perechipare] == Cerinţa == Se dau '''n''' numere naturale. Determinați cel mai mic număr care are un singur factor prim. Dacă nu există niciun număr cu un singur factor prim se va afișa mesajul '''NU EXISTA'''. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale. == Date de ieșire == Acest program primește ca input un număr '''n''' și o listă de '''n''' numere....
 
 
(17 intermediate revisions by one other user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/3622/perechipare]
Sursa: [https://www.pbinfo.ro/probleme/3622/perechipare]
== Cerinţa ==
== Cerinţa ==
Se dau '''n''' numere naturale. Determinați cel mai mic număr care are un singur factor prim. Dacă nu există niciun număr cu un singur factor prim se va afișa mesajul '''NU EXISTA'''.
Se dă un interval '''[l,r]'''. Aflaţi câte perechi de numere pare se pot forma alegând două numere din interval.


== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale.
Programul citește de la tastatură numerele '''l''' şi '''r'''.


== Date de ieșire ==  
== Date de ieșire ==  
Acest program primește ca input un număr '''n''' și o listă de '''n''' numere. Scopul său este de a găsi cel mai mic număr din listă care are exact un factor prim.
Dacă datele introduse sunt corecte și respectă formatul așteptat, programul va afișa în continuare, pe un rând nou, perechile de numere pare care se pot forma alegând două numere din interval și mesajul "Datele introduse corespund cerințelor".


Dacă numărul are exact un factor prim și este mai mic decât cel mai mic număr găsit până acum, acesta este actualizat ca fiind cel mai mic număr. Dacă nu se găsește niciun număr cu exact un factor prim, programul afișează '''NU EXISTA'''.
În cazul în care datele de intrare nu respectă restricțiile impuse programul va afișa pe ecran mesajul "Datele introduse nu corespund cerințelor" și nu va continua cu restul execuției programului.


== Restricţii şi precizări ==
== Restricţii şi precizări ==
* 1 ⩽ '''n''' ⩽ 1000
* 1 ⩽ '''l''' ⩽ '''r''' ⩽ 1.000.000
* cele '''n''' numere citite vor fi mai mici decât '''1.000.000.000'''.


== Exemplul 1 ==
== Exemplul 1 ==
; Intrare
; Intrare
: Introduceti numarul de numere: 5
: Introdu l: 5
: Introduceti numar: 12
: Introdu r: 10
: Introduceti numar: 9
: Introduceti numar: 16
: Introduceti numar: 4
: Introduceti numar: 20
; Ieșire
; Ieșire
: Cel mai mic numar cu exact un factor prim este: 4
: Datele introduse corespund cerintelor.
: 9
<br>
<br>


== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
: Introduceti numarul de numere: 10001
: Introdu l: 5
: Introdu r: 1000000000000000000000000000000
; Ieșire
; Ieșire
: Numarul introdus trebuie sa fie intre 1 si 1000!
: Datele introduse nu corespund cerintelor.
<br>
<br>


Line 39: Line 36:
def validate_input(l, r):
def validate_input(l, r):
     if not (1 <= l <= r <= 1000000):
     if not (1 <= l <= r <= 1000000):
         print("l și r trebuie să fie între 1 și 1,000,000 și l trebuie să fie mai mic sau egal cu r.")
         print("Datele introduse nu corespund cerintelor.")
         exit()
         exit()


Line 57: Line 54:


     contor = numarare_numere_pare(l, r)
     contor = numarare_numere_pare(l, r)
     print("Numărul de numere pare din intervalul dat ridicat la pătrat este: ", contor * contor)
     print(f"Datele introduse corespund cerintelor.\n{contor * contor}")


</syntaxhighlight>
</syntaxhighlight>


== Explicatie rezolvare ==
== Explicatie rezolvare ==
Acest program numara numerele pare dintre doua numere l si r date de utilizator si afiseaza patratul numarului de numere pare gasite.
Mai intai, functia `validate_input` verifica daca cele doua numere introduse sunt intre 1 si 1000000 si afiseaza un mesaj de eroare si opreste programul daca acestea nu sunt indeplinite. Aceasta functie este apelata in functia `numarare_numere_pare` pentru a asigura ca datele introduse sunt valide.
Functia `numarare_numere_pare` utilizeaza un contor pentru a numara numerele pare intre l si r, inclusiv. Daca un numar este divizibil cu 2, se incrementeaza contorul cu 1. La sfarsit, functia returneaza valoarea contorului.
In programul principal, utilizatorul este intrebat sa introduca valorile l si r. Apoi, functia `numarare_numere_pare` este apelata si rezultatul este afisat, alaturi de un mesaj care confirma ca datele introduse sunt valide.

Latest revision as of 19:15, 14 May 2023

Sursa: [1]

Cerinţa[edit | edit source]

Se dă un interval [l,r]. Aflaţi câte perechi de numere pare se pot forma alegând două numere din interval.

Date de intrare[edit | edit source]

Programul citește de la tastatură numerele l şi r.

Date de ieșire[edit | edit source]

Dacă datele introduse sunt corecte și respectă formatul așteptat, programul va afișa în continuare, pe un rând nou, perechile de numere pare care se pot forma alegând două numere din interval și mesajul "Datele introduse corespund cerințelor".

În cazul în care datele de intrare nu respectă restricțiile impuse programul va afișa pe ecran mesajul "Datele introduse nu corespund cerințelor" și nu va continua cu restul execuției programului.

Restricţii şi precizări[edit | edit source]

  • 1 ⩽ lr ⩽ 1.000.000

Exemplul 1[edit | edit source]

Intrare
Introdu l: 5
Introdu r: 10
Ieșire
Datele introduse corespund cerintelor.
9


Exemplul 2[edit | edit source]

Intrare
Introdu l: 5
Introdu r: 1000000000000000000000000000000
Ieșire
Datele introduse nu corespund cerintelor.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 3622

def validate_input(l, r):

   if not (1 <= l <= r <= 1000000):
       print("Datele introduse nu corespund cerintelor.")
       exit()


def numarare_numere_pare(l, r):

   validate_input(l, r)
   contor = 0
   for i in range(l, r+1):
       if i % 2 == 0:
           contor += 1
   return contor


if __name__ == '__main__':

   l = int(input("Introdu l: "))
   r = int(input("Introdu r: "))
   contor = numarare_numere_pare(l, r)
   print(f"Datele introduse corespund cerintelor.\n{contor * contor}")

</syntaxhighlight>

Explicatie rezolvare[edit | edit source]

Acest program numara numerele pare dintre doua numere l si r date de utilizator si afiseaza patratul numarului de numere pare gasite.

Mai intai, functia `validate_input` verifica daca cele doua numere introduse sunt intre 1 si 1000000 si afiseaza un mesaj de eroare si opreste programul daca acestea nu sunt indeplinite. Aceasta functie este apelata in functia `numarare_numere_pare` pentru a asigura ca datele introduse sunt valide.

Functia `numarare_numere_pare` utilizeaza un contor pentru a numara numerele pare intre l si r, inclusiv. Daca un numar este divizibil cu 2, se incrementeaza contorul cu 1. La sfarsit, functia returneaza valoarea contorului.

In programul principal, utilizatorul este intrebat sa introduca valorile l si r. Apoi, functia `numarare_numere_pare` este apelata si rezultatul este afisat, alaturi de un mesaj care confirma ca datele introduse sunt valide.