3622 - Perechi Pare: Diferență între versiuni

De la Universitas MediaWiki
 
(Nu s-au afișat 9 versiuni intermediare efectuate de un alt utilizator)
Linia 7: Linia 7:


== Date de ieșire ==  
== Date de ieșire ==  
Programul va afișa pe ecran numărul perechilor de numere pare care se pot forma alegând două numere din interval. În cazul in care '''l''' și '''r''' nu sunt între '''1''' și '''1.000.000''' programul va afișa un mesaj de eroare.
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 ==
== Restricţii şi precizări ==
Linia 17: Linia 19:
: Introdu r: 10
: Introdu r: 10
; Ieșire
; Ieșire
: Numărul de numere pare din intervalul dat ridicat la pătrat este: 9
: Datele introduse corespund cerintelor.
: 9
<br>
<br>


Linia 25: Linia 28:
: Introdu r: 1000000000000000000000000000000
: Introdu r: 1000000000000000000000000000000
; Ieșire
; Ieșire
: l și r trebuie să fie între 1 și 1,000,000 și l trebuie să fie mai mic sau egal cu r.
: Datele introduse nu corespund cerintelor.
<br>
<br>


Linia 33: Linia 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()


Linia 51: Linia 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 primește două numere întregi, '''l''' și '''r''', reprezentând limitele inferioară și superioară ale unui interval, respectiv. Programul validează intrările și verifică dacă intervalul specificat este între '''1''' și '''1.000.000''' și dacă '''l''' este mai mic sau egal cu '''r'''.
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.


Apoi, programul numără numerele pare din intervalul specificat prin parcurgerea intervalului cu o buclă for și verificarea dacă fiecare număr este divizibil cu 2, crescând un contor pentru fiecare număr par găsit. În cele din urmă, programul afișează pătratul numărului de numere pare găsite prin înmulțirea contorului cu el însuși și afișarea rezultatului.
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.

Versiunea curentă din 14 mai 2023 19:15

Sursa: [1]

Cerinţa

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

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

Date de ieșire

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

  • 1 ⩽ lr ⩽ 1.000.000

Exemplul 1

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


Exemplul 2

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


Rezolvare

#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}")

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.