<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dragos1234</id>
	<title>Bitnami MediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dragos1234"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Dragos1234"/>
	<updated>2026-05-02T17:18:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6512</id>
		<title>1892 - S Norocos</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6512"/>
		<updated>2023-05-14T21:35:23Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Explicatie rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1892/snorocos]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Dacă numărul este norocos afișați cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau pătratul acestuia.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Daca &#039;&#039;&#039;n&#039;&#039;&#039; este norocos, programul va afișa pe ecran cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau &#039;&#039;&#039;n * n&#039;&#039;&#039;, separate prin spații și mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot; În caz contrar, programul va afișa mesajele &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039; și &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: NU ESTE NOROCOS&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1892&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if isinstance(n, int) and 1 &amp;lt;= n &amp;lt;= 1000:&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def print_sequence(n):&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        k = (n + 1) // 2&lt;br /&gt;
        while n &amp;gt; 0:&lt;br /&gt;
            print(k, end=&#039; &#039;)&lt;br /&gt;
            k += 1&lt;br /&gt;
            n -= 1&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU ESTE NOROCOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;n: &amp;quot;))&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    print_sequence(n)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program primește un număr întreg de la utilizator și îl validează folosind funcția `validate_n`. Funcția `validate_n` verifică dacă numărul este de tip întreg și se încadrează în intervalul cuprins între 1 și 1000. Dacă numărul este valid, se afișează un mesaj corespunzător și se continuă execuția programului. În caz contrar, se afișează un mesaj de eroare și programul se oprește.&lt;br /&gt;
&lt;br /&gt;
Apoi, programul folosește funcția `print_sequence` pentru a afișa o secvență de numere. Dacă numărul introdus este impar, se calculează valoarea `k` ca fiind jumătatea numărului plus unu, iar apoi se afișează `n` numere consecutive începând cu `k`. Dacă numărul introdus este par, se afișează mesajul &amp;quot;NU ESTE NOROCOS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
În final, programul rulează în modul principal (`if __name__ == &#039;__main__&#039;`) unde solicită utilizatorului să introducă un număr și verifică validitatea acestuia folosind funcția `validate_n`. Dacă numărul nu este valid, se afișează un mesaj de eroare și programul se oprește. În caz contrar, se afișează un mesaj de confirmare și se afișează secvența de numere folosind funcția `print_sequence`.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6510</id>
		<title>1892 - S Norocos</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6510"/>
		<updated>2023-05-14T21:34:10Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1892/snorocos]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Dacă numărul este norocos afișați cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau pătratul acestuia.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Daca &#039;&#039;&#039;n&#039;&#039;&#039; este norocos, programul va afișa pe ecran cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau &#039;&#039;&#039;n * n&#039;&#039;&#039;, separate prin spații și mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot; În caz contrar, programul va afișa mesajele &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039; și &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: NU ESTE NOROCOS&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1892&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if isinstance(n, int) and 1 &amp;lt;= n &amp;lt;= 1000:&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def print_sequence(n):&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        k = (n + 1) // 2&lt;br /&gt;
        while n &amp;gt; 0:&lt;br /&gt;
            print(k, end=&#039; &#039;)&lt;br /&gt;
            k += 1&lt;br /&gt;
            n -= 1&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU ESTE NOROCOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;n: &amp;quot;))&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    print_sequence(n)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program primește un număr întreg n de la utilizator și verifică dacă numărul se încadrează între &#039;&#039;&#039;1 și 1000&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr impar, programul va imprima primele &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale impare consecutive începând cu &#039;&#039;&#039;(n+1)//2&#039;&#039;&#039;.&lt;br /&gt;
În caz contrar, programul va afișa &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039;.&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_n&#039;&#039;&#039; este folosită pentru a verifica dacă &#039;&#039;&#039;n-ul&#039;&#039;&#039; introdus este un număr întreg între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1754_-_Mun%C8%9Bi&amp;diff=6504</id>
		<title>1754 - Munți</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1754_-_Mun%C8%9Bi&amp;diff=6504"/>
		<updated>2023-05-14T21:30:04Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Explicatie rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1754/munti]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Vrăjitorul vă cere să determinați numărul maxim de munți ce pot fi aduși la o înălțime egală.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Pe prima linie a fișierului &#039;&#039;&#039;munti.in&#039;&#039;&#039; se va afla numărul natural &#039;&#039;&#039;N&#039;&#039;&#039;, reprezentând numărul de munți existenți. Pe cea de-a doua linie se vor afla &#039;&#039;&#039;N&#039;&#039;&#039; valori naturale separate prin spațiu, reprezentând înălțimea inițială a fiecărui munte.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor.&amp;quot;, apoi fișierul de ieșire  munti.out va conține, pe prima și singura linie a fișierului, numărul maxim de munți ce pot fi aduși la o înălțime egală. În cazul în care datele nu respectă restricțiile, se va doar afișa pe ecran: &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;N&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;înalțimea inițială&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;munti.in&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
: 2 6 2 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;munti.out&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;munti.in&#039;&#039;&lt;br /&gt;
: 8&lt;br /&gt;
: 2 6 2 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;munti.out&#039;&#039;&lt;br /&gt;
: 7&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1754&lt;br /&gt;
def validate_input(n, x_list):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000 or not all(1 &amp;lt;= x &amp;lt;= 1000000000 for x in x_list):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def read_input_file(file_path):&lt;br /&gt;
    with open(file_path, &amp;quot;r&amp;quot;) as f_in:&lt;br /&gt;
        n = int(f_in.readline())&lt;br /&gt;
        x_list = list(map(int, f_in.readline().split()))&lt;br /&gt;
    return n, x_list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def write_output_file(file_path, result):&lt;br /&gt;
    with open(file_path, &amp;quot;w&amp;quot;) as f_out:&lt;br /&gt;
        f_out.write(str(result))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_result(n, x_list):&lt;br /&gt;
    s = sum(x_list)&lt;br /&gt;
    return n if s % n == 0 else n - 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    input_file = &amp;quot;munti.in&amp;quot;&lt;br /&gt;
    output_file = &amp;quot;munti.out&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        n, x_list = read_input_file(input_file)&lt;br /&gt;
        validate_input(n, x_list)&lt;br /&gt;
        result = calculate_result(n, x_list)&lt;br /&gt;
        write_output_file(output_file, result)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
    except ValueError as e:&lt;br /&gt;
        print(str(e))&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul de intrare nu exista.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;A aparut o eroare: &amp;quot; + str(e))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program are ca scop citirea unui fișier de intrare, validarea datelor, efectuarea unui calcul și scrierea rezultatului într-un fișier de ieșire.&lt;br /&gt;
&lt;br /&gt;
Funcția `validate_input` primește doi parametri: `n` și `x_list`. Această funcție verifică dacă `n` este între 1 și 1.000.000 și dacă toate elementele din `x_list` sunt între 1 și 1.000.000.000. Dacă această validare nu este îndeplinită, se afișează un mesaj de eroare și programul se încheie.&lt;br /&gt;
&lt;br /&gt;
Funcția `read_input_file` primește calea către un fișier de intrare și returnează două valori: `n` și `x_list`. Ea deschide fișierul de intrare și citește prima linie, care reprezintă `n`. Apoi citește a doua linie și o împarte în elemente întregi, pe care le stochează într-o listă `x_list`. Cele două valori sunt returnate ca rezultat.&lt;br /&gt;
&lt;br /&gt;
Funcția `write_output_file` primește calea către un fișier de ieșire și un rezultat. Ea deschide fișierul de ieșire și scrie rezultatul convertit la șir de caractere.&lt;br /&gt;
&lt;br /&gt;
Funcția `calculate_result` primește `n` și `x_list` și efectuează un calcul pentru a obține rezultatul. Calculează suma tuturor elementelor din `x_list` și verifică dacă această sumă este divizibilă cu `n`. Dacă este, rezultatul este egal cu `n`, altfel rezultatul este egal cu `n - 1`. Rezultatul calculat este returnat.&lt;br /&gt;
&lt;br /&gt;
În cadrul blocului `if __name__ == &amp;quot;__main__&amp;quot;:`, se specifică fișierul de intrare și fișierul de ieșire. Se încearcă citirea datelor din fișierul de intrare folosind `read_input_file`, validarea datelor cu `validate_input`, calcularea rezultatului cu `calculate_result`, scrierea rezultatului în fișierul de ieșire folosind `write_output_file`, și se afișează un mesaj de confirmare dacă totul a fost realizat cu succes.&lt;br /&gt;
&lt;br /&gt;
Dacă apar excepții în timpul execuției (cum ar fi valori invalide în fișierul de intrare sau fișierul de intrare lipsă), se afișează un mesaj corespunzător.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1754_-_Mun%C8%9Bi&amp;diff=6503</id>
		<title>1754 - Munți</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1754_-_Mun%C8%9Bi&amp;diff=6503"/>
		<updated>2023-05-14T21:28:19Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1754/munti]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Vrăjitorul vă cere să determinați numărul maxim de munți ce pot fi aduși la o înălțime egală.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Pe prima linie a fișierului &#039;&#039;&#039;munti.in&#039;&#039;&#039; se va afla numărul natural &#039;&#039;&#039;N&#039;&#039;&#039;, reprezentând numărul de munți existenți. Pe cea de-a doua linie se vor afla &#039;&#039;&#039;N&#039;&#039;&#039; valori naturale separate prin spațiu, reprezentând înălțimea inițială a fiecărui munte.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor.&amp;quot;, apoi fișierul de ieșire  munti.out va conține, pe prima și singura linie a fișierului, numărul maxim de munți ce pot fi aduși la o înălțime egală. În cazul în care datele nu respectă restricțiile, se va doar afișa pe ecran: &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;N&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;înalțimea inițială&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;munti.in&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
: 2 6 2 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;munti.out&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;munti.in&#039;&#039;&lt;br /&gt;
: 8&lt;br /&gt;
: 2 6 2 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;munti.out&#039;&#039;&lt;br /&gt;
: 7&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1754&lt;br /&gt;
def validate_input(n, x_list):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000 or not all(1 &amp;lt;= x &amp;lt;= 1000000000 for x in x_list):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def read_input_file(file_path):&lt;br /&gt;
    with open(file_path, &amp;quot;r&amp;quot;) as f_in:&lt;br /&gt;
        n = int(f_in.readline())&lt;br /&gt;
        x_list = list(map(int, f_in.readline().split()))&lt;br /&gt;
    return n, x_list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def write_output_file(file_path, result):&lt;br /&gt;
    with open(file_path, &amp;quot;w&amp;quot;) as f_out:&lt;br /&gt;
        f_out.write(str(result))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_result(n, x_list):&lt;br /&gt;
    s = sum(x_list)&lt;br /&gt;
    return n if s % n == 0 else n - 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    input_file = &amp;quot;munti.in&amp;quot;&lt;br /&gt;
    output_file = &amp;quot;munti.out&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        n, x_list = read_input_file(input_file)&lt;br /&gt;
        validate_input(n, x_list)&lt;br /&gt;
        result = calculate_result(n, x_list)&lt;br /&gt;
        write_output_file(output_file, result)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
    except ValueError as e:&lt;br /&gt;
        print(str(e))&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul de intrare nu exista.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;A aparut o eroare: &amp;quot; + str(e))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program este o soluție pentru o problemă de programare care citește date de intrare dintr-un fișier numit &amp;quot;munti.in&amp;quot;, verifică dacă aceste date îndeplinesc anumite cerințe și apoi calculează un rezultat bazat pe datele de intrare și îl scrie într-un fișier numit &amp;quot;munti.out&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;validate_input&amp;quot; verifică dacă numărul &amp;quot;n&amp;quot; și lista &amp;quot;x_list&amp;quot; de numere întregi citite din fișierul de intrare îndeplinesc cerințele problemei. Dacă datele nu îndeplinesc cerințele, programul afișează un mesaj de eroare și se încheie prin apelul funcției &amp;quot;exit()&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
După validarea datelor de intrare, programul calculează suma numerelor din lista &amp;quot;x_list&amp;quot; și determină dacă această sumă este divizibilă cu &amp;quot;n&amp;quot; sau nu. Dacă suma este divizibilă cu &amp;quot;n&amp;quot;, atunci programul scrie în fișierul de ieșire numărul &amp;quot;n&amp;quot;, altfel scrie &amp;quot;n - 1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
În esență, acest program încearcă să găsească numărul de munți (sau vârfuri) care pot fi formați prin gruparea unui anumit număr de înălțimi ale munților citite din fișierul de intrare.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2448_-_P%C4%83trate3&amp;diff=6319</id>
		<title>2448 - Pătrate3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2448_-_P%C4%83trate3&amp;diff=6319"/>
		<updated>2023-05-12T18:24:21Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2448/patrate3]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Scrieţi un program care rezolvă următoarele două cerinţe:&lt;br /&gt;
&lt;br /&gt;
1. Citește un număr natural M și determină numărul K de valori conținute de pătratul numerotat cu M;&lt;br /&gt;
&lt;br /&gt;
2. Citește un număr natural N și determină numărul T al pătratului care conține numărul N pe una dintre laturi.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;patrate3.in&#039;&#039;&#039; conține pe prima linie un număr natural C reprezentând cerința din problemă care trebuie rezolvată (1 sau 2). Dacă C = 1, atunci fişierul conține pe a doua linie numărul natural M. Dacă C = 2, atunci fișierul conține pe a doua linie numărul natural N.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă C = 1, atunci fişierul de ieşire &#039;&#039;&#039;patrate3.out&#039;&#039;&#039; conţine pe prima linie numărul K, reprezentând răspunsul la cerința 1 a problemei si mesajul &amp;quot;Datele introduse corespund cerintelor&amp;quot;. Dacă C = 2, atunci fişierul de ieşire &#039;&#039;&#039;patrate3.out&#039;&#039;&#039; conţine pe prima linie numărul natural T, reprezentând răspunsul la cerinţa 2 și mesajul &amp;quot;Datele introduse corespund cerințelor.&amp;quot; În caz contrar programul v-a afișa mesajul &amp;quot;Datele introduse nu corespund cenrintelor&amp;quot; și se va inceta executia programului.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;M&#039;&#039;&#039; &amp;amp;les; 260.000.000&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;N&#039;&#039;&#039; &amp;amp;les; 2.147.302.920&lt;br /&gt;
* Numerele N, M, T și K sunt numere naturale&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;patrate3.in&#039;&#039;&lt;br /&gt;
: 1 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerințelor&lt;br /&gt;
: &#039;&#039;patrate3.out&#039;&#039;&lt;br /&gt;
: 24 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;patrate3.in&#039;&#039;&lt;br /&gt;
: 0 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerințelor &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#2448&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(m, n):&lt;br /&gt;
    if not (1 &amp;lt;= m &amp;lt;= 260000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 2147302920):&lt;br /&gt;
        return False&lt;br /&gt;
    # Verifică că M și N sunt numere naturale&lt;br /&gt;
    if not isinstance(m, int) or not isinstance(n, int):&lt;br /&gt;
        return False&lt;br /&gt;
    # Verifică că nu există două pătrate cu același număr de valori scrise pe laturi&lt;br /&gt;
    num_values = [m, n]&lt;br /&gt;
    for i in range(2):&lt;br /&gt;
        count = num_values.count(num_values[i])&lt;br /&gt;
        if count &amp;gt; 1:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def read_input():&lt;br /&gt;
    with open(&amp;quot;patrate3.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        cer, n = map(int, f.readline().split())&lt;br /&gt;
    return cer, n&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def write_output(output):&lt;br /&gt;
    with open(&amp;quot;patrate3.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(str(output))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def solve(cer, n):&lt;br /&gt;
    if cer == 1:&lt;br /&gt;
        return 8 * n&lt;br /&gt;
    else:&lt;br /&gt;
        m = int(math.sqrt(n))&lt;br /&gt;
        if m % 2 == 1:&lt;br /&gt;
            return (m + 1) // 2&lt;br /&gt;
        else:&lt;br /&gt;
            return m // 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    cer, n = read_input()&lt;br /&gt;
    if not validate_input(cer, n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
        output = solve(cer, n)&lt;br /&gt;
        write_output(output)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program citește date de intrare dintr-un fișier numit &#039;&#039;&#039;patrate3.in&#039;&#039;&#039;, validează datele de intrare conform unor criterii prestabilite, rezolvă problema specifică (calculând o valoare pentru variabila output) și afișează rezultatul final într-un fișier numit &#039;&#039;&#039;patrate3.out&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_input(m, n)&#039;&#039;&#039; verifică dacă m și n îndeplinesc anumite condiții și returnează True dacă sunt valide, sau False în caz contrar.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;read_input()&#039;&#039;&#039; deschide fișierul &#039;&#039;&#039;patrate3.in&#039;&#039;&#039;, citește primul număr (cer) și al doilea număr (n) din prima linie, apoi le returnează sub formă de tuplu.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;write_output(output)&#039;&#039;&#039; deschide fișierul &amp;quot;patrate3.out&amp;quot; și scrie valoarea output în el.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;solve(cer, n)&#039;&#039;&#039; primește cer și n și returnează o valoare specifică în funcție de valoarea lui cer și n.&lt;br /&gt;
&lt;br /&gt;
În secțiunea main, programul citește datele de intrare, verifică dacă sunt valide prin apelul funcției &#039;&#039;&#039;validate_input&#039;&#039;&#039;, apoi rezolvă problema și afișează rezultatul final dacă datele de intrare sunt valide.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3985_-_Suma_C2&amp;diff=6318</id>
		<title>3985 - Suma C2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3985_-_Suma_C2&amp;diff=6318"/>
		<updated>2023-05-12T17:34:34Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Calculați suma celor care au exact două cifre.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program primește un număr &#039;&#039;&#039;n&#039;&#039;&#039; de la utilizator, reprezentând numărul de numere naturale pe care utilizatorul dorește să le introducă. Programul verifică dacă &#039;&#039;&#039;n&#039;&#039;&#039; este între &#039;&#039;&#039;1 și 1000&#039;&#039;&#039;, altfel va afișa o eroare.&lt;br /&gt;
&lt;br /&gt;
În continuare, programul primește &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale de la utilizator, verificând dacă fiecare număr este mai mic decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;. Dacă se introduce un număr mai mare, programul va afișa mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Apoi, programul calculează suma tuturor numerelor cu două cifre din lista de numere introduse folosind funcția definită suma_doua_cifre. Funcția parcurge lista de numere și adună numerele cu două cifre. Suma este apoi returnată și afișată, iar în consolă se va afișa mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 1000 20 3 41 576&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 61&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2&lt;br /&gt;
: 541 99&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 99&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3985&lt;br /&gt;
def validare_numar(n):&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(n)&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 1000):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        return n&lt;br /&gt;
    except ValueError as e:&lt;br /&gt;
        print(&amp;quot;Eroare:&amp;quot;, e)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare_numere(n):&lt;br /&gt;
    numere = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        try:&lt;br /&gt;
            num = int(input(&amp;quot;Introduceți un număr natural mai mic decât 1.000.000.000: &amp;quot;))&lt;br /&gt;
            if not (0 &amp;lt;= num &amp;lt; 1000000000):&lt;br /&gt;
                print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
            if len(str(num)) == 2:&lt;br /&gt;
                numere.append(num)&lt;br /&gt;
        except ValueError as e:&lt;br /&gt;
            print(&amp;quot;Eroare:&amp;quot;, e)&lt;br /&gt;
            break&lt;br /&gt;
    return numere&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = input(&amp;quot;Introduceți numărul de numere naturale (1 ≤ n ≤ 1000): &amp;quot;)&lt;br /&gt;
    n = validare_numar(n)&lt;br /&gt;
    if n is not None:&lt;br /&gt;
        numere = validare_numere(n)&lt;br /&gt;
        S = sum(numere)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor\n&amp;quot;,S)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program este o implementare a unei aplicații care primește un număr &amp;quot;n&amp;quot; și &amp;quot;n&amp;quot; numere naturale mai mici decât 1.000.000.000. Programul validează întâi numărul &amp;quot;n&amp;quot; și apoi validează cele &amp;quot;n&amp;quot; numere introduse de utilizator. Dacă numărul &amp;quot;n&amp;quot; și numerele introduse trec de verificările de validare, atunci suma numerelor este afișată ca rezultat. &lt;br /&gt;
&lt;br /&gt;
Mai precis, funcția &amp;quot;validare_numar&amp;quot; verifică dacă numărul &amp;quot;n&amp;quot; este un întreg și dacă este între 1 și 1000. Dacă nu este, atunci programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii &amp;quot;exit()&amp;quot;. Funcția &amp;quot;validare_numere&amp;quot; primește numărul &amp;quot;n&amp;quot; și verifică fiecare dintre cele &amp;quot;n&amp;quot; numere introduse de utilizator. Verificările includ dacă numerele sunt întregi și dacă sunt mai mici decât 1.000.000.000. Dacă numărul are exact două cifre, atunci este adăugat la o listă de numere. Dacă apare o eroare în timpul verificărilor, programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii &amp;quot;break&amp;quot;. În final, suma numerelor valide este afișată ca rezultat, împreună cu un mesaj care confirmă că datele introduse au corespuns cerințelor.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3985_-_Suma_C2&amp;diff=6317</id>
		<title>3985 - Suma C2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3985_-_Suma_C2&amp;diff=6317"/>
		<updated>2023-05-12T17:34:01Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Calculați suma celor care au exact două cifre.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program primește un număr &#039;&#039;&#039;n&#039;&#039;&#039; de la utilizator, reprezentând numărul de numere naturale pe care utilizatorul dorește să le introducă. Programul verifică dacă &#039;&#039;&#039;n&#039;&#039;&#039; este între &#039;&#039;&#039;1 și 1000&#039;&#039;&#039;, altfel va afișa o eroare.&lt;br /&gt;
&lt;br /&gt;
În continuare, programul primește &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale de la utilizator, verificând dacă fiecare număr este mai mic decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;. Dacă se introduce un număr mai mare, programul va afișa o eroare și va întrerupe introducerea de date.&lt;br /&gt;
&lt;br /&gt;
Apoi, programul calculează suma tuturor numerelor cu două cifre din lista de numere introduse folosind funcția definită suma_doua_cifre. Funcția parcurge lista de numere și adună numerele cu două cifre. Suma este apoi returnată și afișată, iar în consolă se va afișa mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot;În caz contrar programul va afișa mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 1000 20 3 41 576&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 61&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2&lt;br /&gt;
: 541 99&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 99&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3985&lt;br /&gt;
def validare_numar(n):&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(n)&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 1000):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        return n&lt;br /&gt;
    except ValueError as e:&lt;br /&gt;
        print(&amp;quot;Eroare:&amp;quot;, e)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare_numere(n):&lt;br /&gt;
    numere = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        try:&lt;br /&gt;
            num = int(input(&amp;quot;Introduceți un număr natural mai mic decât 1.000.000.000: &amp;quot;))&lt;br /&gt;
            if not (0 &amp;lt;= num &amp;lt; 1000000000):&lt;br /&gt;
                print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
            if len(str(num)) == 2:&lt;br /&gt;
                numere.append(num)&lt;br /&gt;
        except ValueError as e:&lt;br /&gt;
            print(&amp;quot;Eroare:&amp;quot;, e)&lt;br /&gt;
            break&lt;br /&gt;
    return numere&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = input(&amp;quot;Introduceți numărul de numere naturale (1 ≤ n ≤ 1000): &amp;quot;)&lt;br /&gt;
    n = validare_numar(n)&lt;br /&gt;
    if n is not None:&lt;br /&gt;
        numere = validare_numere(n)&lt;br /&gt;
        S = sum(numere)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor\n&amp;quot;,S)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program este o implementare a unei aplicații care primește un număr &amp;quot;n&amp;quot; și &amp;quot;n&amp;quot; numere naturale mai mici decât 1.000.000.000. Programul validează întâi numărul &amp;quot;n&amp;quot; și apoi validează cele &amp;quot;n&amp;quot; numere introduse de utilizator. Dacă numărul &amp;quot;n&amp;quot; și numerele introduse trec de verificările de validare, atunci suma numerelor este afișată ca rezultat. &lt;br /&gt;
&lt;br /&gt;
Mai precis, funcția &amp;quot;validare_numar&amp;quot; verifică dacă numărul &amp;quot;n&amp;quot; este un întreg și dacă este între 1 și 1000. Dacă nu este, atunci programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii &amp;quot;exit()&amp;quot;. Funcția &amp;quot;validare_numere&amp;quot; primește numărul &amp;quot;n&amp;quot; și verifică fiecare dintre cele &amp;quot;n&amp;quot; numere introduse de utilizator. Verificările includ dacă numerele sunt întregi și dacă sunt mai mici decât 1.000.000.000. Dacă numărul are exact două cifre, atunci este adăugat la o listă de numere. Dacă apare o eroare în timpul verificărilor, programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii &amp;quot;break&amp;quot;. În final, suma numerelor valide este afișată ca rezultat, împreună cu un mesaj care confirmă că datele introduse au corespuns cerințelor.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3985_-_Suma_C2&amp;diff=6316</id>
		<title>3985 - Suma C2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3985_-_Suma_C2&amp;diff=6316"/>
		<updated>2023-05-12T17:32:39Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Calculați suma celor care au exact două cifre.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program primește un număr &#039;&#039;&#039;n&#039;&#039;&#039; de la utilizator, reprezentând numărul de numere naturale pe care utilizatorul dorește să le introducă. Programul verifică dacă &#039;&#039;&#039;n&#039;&#039;&#039; este între &#039;&#039;&#039;1 și 1000&#039;&#039;&#039;, altfel va afișa o eroare.&lt;br /&gt;
&lt;br /&gt;
În continuare, programul primește &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale de la utilizator, verificând dacă fiecare număr este mai mic decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;. Dacă se introduce un număr mai mare, programul va afișa o eroare și va întrerupe introducerea de date.&lt;br /&gt;
&lt;br /&gt;
Apoi, programul calculează suma tuturor numerelor cu două cifre din lista de numere introduse folosind funcția definită suma_doua_cifre. Funcția parcurge lista de numere și adună numerele cu două cifre. Suma este apoi returnată și afișată în consolă.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 1000 20 3 41 576&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 61&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2&lt;br /&gt;
: 541 99&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 99&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3985&lt;br /&gt;
def validare_numar(n):&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(n)&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 1000):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        return n&lt;br /&gt;
    except ValueError as e:&lt;br /&gt;
        print(&amp;quot;Eroare:&amp;quot;, e)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare_numere(n):&lt;br /&gt;
    numere = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        try:&lt;br /&gt;
            num = int(input(&amp;quot;Introduceți un număr natural mai mic decât 1.000.000.000: &amp;quot;))&lt;br /&gt;
            if not (0 &amp;lt;= num &amp;lt; 1000000000):&lt;br /&gt;
                print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
            if len(str(num)) == 2:&lt;br /&gt;
                numere.append(num)&lt;br /&gt;
        except ValueError as e:&lt;br /&gt;
            print(&amp;quot;Eroare:&amp;quot;, e)&lt;br /&gt;
            break&lt;br /&gt;
    return numere&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = input(&amp;quot;Introduceți numărul de numere naturale (1 ≤ n ≤ 1000): &amp;quot;)&lt;br /&gt;
    n = validare_numar(n)&lt;br /&gt;
    if n is not None:&lt;br /&gt;
        numere = validare_numere(n)&lt;br /&gt;
        S = sum(numere)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor\n&amp;quot;,S)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program este o implementare a unei aplicații care primește un număr &amp;quot;n&amp;quot; și &amp;quot;n&amp;quot; numere naturale mai mici decât 1.000.000.000. Programul validează întâi numărul &amp;quot;n&amp;quot; și apoi validează cele &amp;quot;n&amp;quot; numere introduse de utilizator. Dacă numărul &amp;quot;n&amp;quot; și numerele introduse trec de verificările de validare, atunci suma numerelor este afișată ca rezultat. &lt;br /&gt;
&lt;br /&gt;
Mai precis, funcția &amp;quot;validare_numar&amp;quot; verifică dacă numărul &amp;quot;n&amp;quot; este un întreg și dacă este între 1 și 1000. Dacă nu este, atunci programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii &amp;quot;exit()&amp;quot;. Funcția &amp;quot;validare_numere&amp;quot; primește numărul &amp;quot;n&amp;quot; și verifică fiecare dintre cele &amp;quot;n&amp;quot; numere introduse de utilizator. Verificările includ dacă numerele sunt întregi și dacă sunt mai mici decât 1.000.000.000. Dacă numărul are exact două cifre, atunci este adăugat la o listă de numere. Dacă apare o eroare în timpul verificărilor, programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii &amp;quot;break&amp;quot;. În final, suma numerelor valide este afișată ca rezultat, împreună cu un mesaj care confirmă că datele introduse au corespuns cerințelor.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6315</id>
		<title>3807 - Sume Gauss De Sume Gauss</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6315"/>
		<updated>2023-05-12T17:31:10Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3807/sumegaussdesumegauss]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau n numere naturale. Pentru fiecare numar &#039;&#039;&#039;x&#039;&#039;&#039;, calculati &#039;&#039;&#039;1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Acest program primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; de teste și pentru fiecare test primește un număr întreg &#039;&#039;&#039;x&#039;&#039;&#039;. Programul calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;x&#039;&#039;&#039;, iar apoi afișează această sumă. Funcția &amp;quot;partial_sum&amp;quot; calculează suma parțială pentru un singur număr întreg x, iar funcția &amp;quot;total_sum&amp;quot; calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x. Funcțiile &amp;quot;validate_n&amp;quot; și &amp;quot;validate_x&amp;quot; verifică dacă n și x respectă anumite condiții, respectiv dacă sunt în intervalul specificat. Dacă &#039;&#039;&#039;n&#039;&#039;&#039; sau &#039;&#039;&#039;x&#039;&#039;&#039; nu respectă condițiile, programul afișează un mesaj de eroare și se oprește. În final, programul afișează suma tuturor sumelor parțiale pentru fiecare test introdus și mesajul &amp;quot;Datele introduse corespund cerintelor&amp;quot;. În caz contrar programul va afișa mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;4.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 10 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 35 10 4 220 84&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3807&lt;br /&gt;
def partial_sum(x):&lt;br /&gt;
    current_sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        current_sum += j&lt;br /&gt;
    return current_sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def total_sum(x):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        sum += partial_sum(j)&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_x(x):&lt;br /&gt;
    return x &amp;lt;= 4000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de teste: &amp;quot;))&lt;br /&gt;
    if validate_n(n) is not True:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    inputs = []&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = int(input(f&amp;quot;Introduceti valoarea {i+1}: &amp;quot;))&lt;br /&gt;
        if validate_x(x) is not True:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        inputs.append(x)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for x in inputs:&lt;br /&gt;
        print(total_sum(x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma tuturor numerelor de la 1 la x, apoi suma tuturor sumelor parțiale de la 1 la x și afișează această ultimă sumă pentru fiecare valoare introdusă de la tastatură.&lt;br /&gt;
&lt;br /&gt;
Funcția partial_sum(x) calculează suma numerelor de la 1 la x. Funcția total_sum(x) calculează suma tuturor sumelor parțiale de la 1 la x.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_n(n) verifică dacă numărul de teste (n) este între 1 și 1.000.000, în timp ce funcția validate_x(x) verifică dacă numărul x este mai mic sau egal cu 4.000.000.&lt;br /&gt;
&lt;br /&gt;
În funcția principală, utilizatorul este întâi rugat să introducă numărul de teste (n). Apoi, pentru fiecare test, este cerut utilizatorului să introducă o valoare x. Înainte de a fi afișată suma, se efectuează verificări asupra valorilor introduse pentru a se asigura că respectă cerințele programului.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6314</id>
		<title>3807 - Sume Gauss De Sume Gauss</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6314"/>
		<updated>2023-05-12T17:30:24Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3807/sumegaussdesumegauss]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau n numere naturale. Pentru fiecare numar &#039;&#039;&#039;x&#039;&#039;&#039;, calculati &#039;&#039;&#039;1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Acest program primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; de teste și pentru fiecare test primește un număr întreg &#039;&#039;&#039;x&#039;&#039;&#039;. Programul calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;x&#039;&#039;&#039;, iar apoi afișează această sumă. Funcția &amp;quot;partial_sum&amp;quot; calculează suma parțială pentru un singur număr întreg x, iar funcția &amp;quot;total_sum&amp;quot; calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x. Funcțiile &amp;quot;validate_n&amp;quot; și &amp;quot;validate_x&amp;quot; verifică dacă n și x respectă anumite condiții, respectiv dacă sunt în intervalul specificat. Dacă &#039;&#039;&#039;n&#039;&#039;&#039; sau &#039;&#039;&#039;x&#039;&#039;&#039; nu respectă condițiile, programul afișează un mesaj de eroare și se oprește. În final, programul afișează suma tuturor sumelor parțiale pentru fiecare test introdus.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;4.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 10 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 35 10 4 220 84&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3807&lt;br /&gt;
def partial_sum(x):&lt;br /&gt;
    current_sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        current_sum += j&lt;br /&gt;
    return current_sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def total_sum(x):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        sum += partial_sum(j)&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_x(x):&lt;br /&gt;
    return x &amp;lt;= 4000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de teste: &amp;quot;))&lt;br /&gt;
    if validate_n(n) is not True:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    inputs = []&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = int(input(f&amp;quot;Introduceti valoarea {i+1}: &amp;quot;))&lt;br /&gt;
        if validate_x(x) is not True:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        inputs.append(x)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for x in inputs:&lt;br /&gt;
        print(total_sum(x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma tuturor numerelor de la 1 la x, apoi suma tuturor sumelor parțiale de la 1 la x și afișează această ultimă sumă pentru fiecare valoare introdusă de la tastatură.&lt;br /&gt;
&lt;br /&gt;
Funcția partial_sum(x) calculează suma numerelor de la 1 la x. Funcția total_sum(x) calculează suma tuturor sumelor parțiale de la 1 la x.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_n(n) verifică dacă numărul de teste (n) este între 1 și 1.000.000, în timp ce funcția validate_x(x) verifică dacă numărul x este mai mic sau egal cu 4.000.000.&lt;br /&gt;
&lt;br /&gt;
În funcția principală, utilizatorul este întâi rugat să introducă numărul de teste (n). Apoi, pentru fiecare test, este cerut utilizatorului să introducă o valoare x. Înainte de a fi afișată suma, se efectuează verificări asupra valorilor introduse pentru a se asigura că respectă cerințele programului.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6313</id>
		<title>3807 - Sume Gauss De Sume Gauss</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6313"/>
		<updated>2023-05-12T17:30:09Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3807/sumegaussdesumegauss]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau n numere naturale. Pentru fiecare numar &#039;&#039;&#039;x&#039;&#039;&#039;, calculati &#039;&#039;&#039;1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Acest program primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; de teste și pentru fiecare test primește un număr întreg &#039;&#039;&#039;x&#039;&#039;&#039;. Programul calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;x&#039;&#039;&#039;, iar apoi afișează această sumă. Funcția &amp;quot;partial_sum&amp;quot; calculează suma parțială pentru un singur număr întreg x, iar funcția &amp;quot;total_sum&amp;quot; calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x. Funcțiile &amp;quot;validate_n&amp;quot; și &amp;quot;validate_x&amp;quot; verifică dacă n și x respectă anumite condiții, respectiv dacă sunt în intervalul specificat. Dacă &#039;&#039;&#039;n&#039;&#039;&#039; sau &#039;&#039;&#039;x&#039;&#039;&#039; nu respectă condițiile, programul afișează un mesaj de eroare și se oprește. În final, programul afișează suma tuturor sumelor parțiale pentru fiecare test introdus.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;4.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 10 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 35 10 4 220 84&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3807&lt;br /&gt;
def partial_sum(x):&lt;br /&gt;
    current_sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        current_sum += j&lt;br /&gt;
    return current_sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def total_sum(x):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        sum += partial_sum(j)&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_x(x):&lt;br /&gt;
    return x &amp;lt;= 4000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de teste: &amp;quot;))&lt;br /&gt;
    if validate_n(n) is not True:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    inputs = []&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = int(input(f&amp;quot;Introduceti valoarea {i+1}: &amp;quot;))&lt;br /&gt;
        if validate_x(x) is not True:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        inputs.append(x)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for x in inputs:&lt;br /&gt;
        print(total_sum(x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma tuturor numerelor de la 1 la x, apoi suma tuturor sumelor parțiale de la 1 la x și afișează această ultimă sumă pentru fiecare valoare introdusă de la tastatură.&lt;br /&gt;
&lt;br /&gt;
Funcția partial_sum(x) calculează suma numerelor de la 1 la x. Funcția total_sum(x) calculează suma tuturor sumelor parțiale de la 1 la x.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_n(n) verifică dacă numărul de teste (n) este între 1 și 1.000.000, în timp ce funcția validate_x(x) verifică dacă numărul x este mai mic sau egal cu 4.000.000.&lt;br /&gt;
&lt;br /&gt;
În funcția principală, utilizatorul este întâi rugat să introducă numărul de teste (n). Apoi, pentru fiecare test, este cerut utilizatorului să introducă o valoare x. Înainte de a fi afișată suma, se efectuează verificări asupra valorilor introduse pentru a se asigura că respectă cerințele programului.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6312</id>
		<title>3807 - Sume Gauss De Sume Gauss</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6312"/>
		<updated>2023-05-12T17:29:50Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3807/sumegaussdesumegauss]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau n numere naturale. Pentru fiecare numar &#039;&#039;&#039;x&#039;&#039;&#039;, calculati &#039;&#039;&#039;1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Acest program primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; de teste și pentru fiecare test primește un număr întreg &#039;&#039;&#039;x&#039;&#039;&#039;. Programul calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;x&#039;&#039;&#039;, iar apoi afișează această sumă. Funcția &amp;quot;partial_sum&amp;quot; calculează suma parțială pentru un singur număr întreg x, iar funcția &amp;quot;total_sum&amp;quot; calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x. Funcțiile &amp;quot;validate_n&amp;quot; și &amp;quot;validate_x&amp;quot; verifică dacă n și x respectă anumite condiții, respectiv dacă sunt în intervalul specificat. Dacă &#039;&#039;&#039;n&#039;&#039;&#039; sau &#039;&#039;&#039;x&#039;&#039;&#039; nu respectă condițiile, programul afișează un mesaj de eroare și se oprește. În final, programul afișează suma tuturor sumelor parțiale pentru fiecare test introdus.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;4.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 10 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 35 10 4 220 84&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Numarul de teste trebuie sa fie intre 1 si 1000000&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3807&lt;br /&gt;
def partial_sum(x):&lt;br /&gt;
    current_sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        current_sum += j&lt;br /&gt;
    return current_sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def total_sum(x):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        sum += partial_sum(j)&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_x(x):&lt;br /&gt;
    return x &amp;lt;= 4000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de teste: &amp;quot;))&lt;br /&gt;
    if validate_n(n) is not True:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    inputs = []&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = int(input(f&amp;quot;Introduceti valoarea {i+1}: &amp;quot;))&lt;br /&gt;
        if validate_x(x) is not True:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        inputs.append(x)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for x in inputs:&lt;br /&gt;
        print(total_sum(x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma tuturor numerelor de la 1 la x, apoi suma tuturor sumelor parțiale de la 1 la x și afișează această ultimă sumă pentru fiecare valoare introdusă de la tastatură.&lt;br /&gt;
&lt;br /&gt;
Funcția partial_sum(x) calculează suma numerelor de la 1 la x. Funcția total_sum(x) calculează suma tuturor sumelor parțiale de la 1 la x.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_n(n) verifică dacă numărul de teste (n) este între 1 și 1.000.000, în timp ce funcția validate_x(x) verifică dacă numărul x este mai mic sau egal cu 4.000.000.&lt;br /&gt;
&lt;br /&gt;
În funcția principală, utilizatorul este întâi rugat să introducă numărul de teste (n). Apoi, pentru fiecare test, este cerut utilizatorului să introducă o valoare x. Înainte de a fi afișată suma, se efectuează verificări asupra valorilor introduse pentru a se asigura că respectă cerințele programului.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6311</id>
		<title>3807 - Sume Gauss De Sume Gauss</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3807_-_Sume_Gauss_De_Sume_Gauss&amp;diff=6311"/>
		<updated>2023-05-12T17:20:53Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3807/sumegaussdesumegauss]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau n numere naturale. Pentru fiecare numar &#039;&#039;&#039;x&#039;&#039;&#039;, calculati &#039;&#039;&#039;1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Acest program primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; de teste și pentru fiecare test primește un număr întreg &#039;&#039;&#039;x&#039;&#039;&#039;. Programul calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;x&#039;&#039;&#039;, iar apoi afișează această sumă. Funcția &amp;quot;partial_sum&amp;quot; calculează suma parțială pentru un singur număr întreg x, iar funcția &amp;quot;total_sum&amp;quot; calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x. Funcțiile &amp;quot;validate_n&amp;quot; și &amp;quot;validate_x&amp;quot; verifică dacă n și x respectă anumite condiții, respectiv dacă sunt în intervalul specificat. Dacă &#039;&#039;&#039;n&#039;&#039;&#039; sau &#039;&#039;&#039;x&#039;&#039;&#039; nu respectă condițiile, programul afișează un mesaj de eroare și se oprește. În final, programul afișează suma tuturor sumelor parțiale pentru fiecare test introdus.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;4.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 10 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 35 10 4 220 84&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Numarul de teste trebuie sa fie intre 1 si 1000000&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3807&lt;br /&gt;
def partial_sum(x):&lt;br /&gt;
    current_sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        current_sum += j&lt;br /&gt;
    return current_sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def total_sum(x):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    for j in range(1, x+1):&lt;br /&gt;
        sum += partial_sum(j)&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_x(x):&lt;br /&gt;
    return x &amp;lt;= 4000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de teste: &amp;quot;))&lt;br /&gt;
    if validate_n(n) is not True:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    inputs = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = int(input(f&amp;quot;Introduceti valoarea {i+1}: &amp;quot;))&lt;br /&gt;
        if validate_x(x) is not True:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        inputs.append(x)&lt;br /&gt;
&lt;br /&gt;
    for x in inputs:&lt;br /&gt;
        print(total_sum(x))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma tuturor numerelor de la 1 la x, apoi suma tuturor sumelor parțiale de la 1 la x și afișează această ultimă sumă pentru fiecare valoare introdusă de la tastatură.&lt;br /&gt;
&lt;br /&gt;
Funcția partial_sum(x) calculează suma numerelor de la 1 la x. Funcția total_sum(x) calculează suma tuturor sumelor parțiale de la 1 la x.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_n(n) verifică dacă numărul de teste (n) este între 1 și 1.000.000, în timp ce funcția validate_x(x) verifică dacă numărul x este mai mic sau egal cu 4.000.000.&lt;br /&gt;
&lt;br /&gt;
În funcția principală, utilizatorul este întâi rugat să introducă numărul de teste (n). Apoi, pentru fiecare test, este cerut utilizatorului să introducă o valoare x. Înainte de a fi afișată suma, se efectuează verificări asupra valorilor introduse pentru a se asigura că respectă cerințele programului.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1754_-_Mun%C8%9Bi&amp;diff=6310</id>
		<title>1754 - Munți</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1754_-_Mun%C8%9Bi&amp;diff=6310"/>
		<updated>2023-05-12T16:45:58Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1754/munti]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Vrăjitorul vă cere să determinați numărul maxim de munți ce pot fi aduși la o înălțime egală.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Pe prima linie a fișierului &#039;&#039;&#039;munti.in&#039;&#039;&#039; se va afla numărul natural &#039;&#039;&#039;N&#039;&#039;&#039;, reprezentând numărul de munți existenți. Pe cea de-a doua linie se vor afla &#039;&#039;&#039;N&#039;&#039;&#039; valori naturale separate prin spațiu, reprezentând înălțimea inițială a fiecărui munte.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor.&amp;quot;, apoi fișierul de ieșire  munti.out va conține, pe prima și singura linie a fișierului, numărul maxim de munți ce pot fi aduși la o înălțime egală. În cazul în care datele nu respectă restricțiile, se va doar afișa pe ecran: &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;N&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;înalțimea inițială&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;munti.in&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
: 2 6 2 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;munti.out&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;munti.in&#039;&#039;&lt;br /&gt;
: 8&lt;br /&gt;
: 2 6 2 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;munti.out&#039;&#039;&lt;br /&gt;
: 7&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1754&lt;br /&gt;
def validate_input(n, x_list):&lt;br /&gt;
    print(&amp;quot;Datele de intrare sunt valide.&amp;quot;)&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if not all(1 &amp;lt;= x &amp;lt;= 1000000000 for x in x_list):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    with open(&amp;quot;munti.in&amp;quot;, &amp;quot;r&amp;quot;) as f_in, open(&amp;quot;munti.out&amp;quot;, &amp;quot;w&amp;quot;) as f_out:&lt;br /&gt;
        n = int(f_in.readline())&lt;br /&gt;
        x_list = list(map(int, f_in.readline().split()))&lt;br /&gt;
        validate_input(n, x_list)&lt;br /&gt;
        s = sum(x_list)&lt;br /&gt;
        if s % n == 0:&lt;br /&gt;
            f_out.write(str(n))&lt;br /&gt;
        else:&lt;br /&gt;
            f_out.write(str(n - 1))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program este o soluție pentru o problemă de programare care citește date de intrare dintr-un fișier numit &amp;quot;munti.in&amp;quot;, verifică dacă aceste date îndeplinesc anumite cerințe și apoi calculează un rezultat bazat pe datele de intrare și îl scrie într-un fișier numit &amp;quot;munti.out&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;validate_input&amp;quot; verifică dacă numărul &amp;quot;n&amp;quot; și lista &amp;quot;x_list&amp;quot; de numere întregi citite din fișierul de intrare îndeplinesc cerințele problemei. Dacă datele nu îndeplinesc cerințele, programul afișează un mesaj de eroare și se încheie prin apelul funcției &amp;quot;exit()&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
După validarea datelor de intrare, programul calculează suma numerelor din lista &amp;quot;x_list&amp;quot; și determină dacă această sumă este divizibilă cu &amp;quot;n&amp;quot; sau nu. Dacă suma este divizibilă cu &amp;quot;n&amp;quot;, atunci programul scrie în fișierul de ieșire numărul &amp;quot;n&amp;quot;, altfel scrie &amp;quot;n - 1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
În esență, acest program încearcă să găsească numărul de munți (sau vârfuri) care pot fi formați prin gruparea unui anumit număr de înălțimi ale munților citite din fișierul de intrare.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1030_-_Sume_Produse&amp;diff=6309</id>
		<title>1030 - Sume Produse</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1030_-_Sume_Produse&amp;diff=6309"/>
		<updated>2023-05-12T16:42:16Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1030/sumeproduse]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, unde &#039;&#039;&#039;n&#039;&#039;&#039; este număr natural par. Să se calculeze suma produselor dintre fiecare număr din prima jumătate și fiecare număr din a doua jumătate a șirului de numere date.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul dat mai sus citeste de la utilizator o lista de numere și calculează suma produselor dintre toate perechile de numere din lista, unde primul număr din pereche se află în prima jumătate a listei, iar al doilea număr se află în a doua jumătate a listei.&lt;br /&gt;
&lt;br /&gt;
Datele de ieșire ale programului sunt o valoare numerică reprezentând suma produselor dintre toate perechile de numere din lista, așa cum a fost descris mai sus și mesajul &amp;quot;Datele introduse corespund cerintelor&amp;quot;. Această valoare este afișată la ieșirea programului.&lt;br /&gt;
&lt;br /&gt;
În cazul în care datele de intrare nu corespund restricțiilor, se va afișa un mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 100.000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici sau egale cu &#039;&#039;&#039;10.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4&lt;br /&gt;
: 2 3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 45&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2&lt;br /&gt;
: 1000000000 45&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1030&lt;br /&gt;
def calculeaza_suma_produse(numere):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    # parcurgem toate numerele din prima jumatate a sirului&lt;br /&gt;
    for i in range(len(numere)//2):&lt;br /&gt;
        # parcurgem toate numerele din a doua jumatate a sirului&lt;br /&gt;
        for j in range(len(numere)//2, len(numere)):&lt;br /&gt;
            # calculam produsul dintre cele doua numere curente&lt;br /&gt;
            produs = int(numere[i]) * int(numere[j])&lt;br /&gt;
            # adaugam produsul la suma totala&lt;br /&gt;
            suma += produs&lt;br /&gt;
    return suma&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def valideaza_datele(n, numere):&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 100000):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    elif len(numere) != n:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        for numar in numere:&lt;br /&gt;
            if int(numar) &amp;gt; 10000:&lt;br /&gt;
                print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
                return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    while True:&lt;br /&gt;
        n = int(input(&amp;quot;Numar de numere: &amp;quot;))&lt;br /&gt;
        numere = input(&amp;quot;Șirul de numere: &amp;quot;).split()&lt;br /&gt;
        if valideaza_datele(n, numere):&lt;br /&gt;
            break&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
    suma = calculeaza_suma_produse(numere)&lt;br /&gt;
    print(suma)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program calculează suma produselor a două numere dintr-un șir dat de numere. Programul are două funcții principale:&lt;br /&gt;
&lt;br /&gt;
1. Funcția &amp;quot;calculeaza_suma_produse&amp;quot; primește ca argument un șir de numere și calculează suma produselor a două numere din șirul respectiv. În primul for loop, parcurgem toate numerele din prima jumătate a șirului și în al doilea for loop, parcurgem toate numerele din a doua jumătate a șirului. Pentru fiecare pereche de numere, calculăm produsul lor și îl adăugăm la suma totală. La final, funcția returnează suma.&lt;br /&gt;
&lt;br /&gt;
2. Funcția &amp;quot;valideaza_datele&amp;quot; primește ca argument un număr &amp;quot;n&amp;quot; și un șir de numere și verifică dacă datele introduse sunt valide. Se verifică dacă numărul &amp;quot;n&amp;quot; se află în intervalul [1, 100000], dacă lungimea șirului este egală cu &amp;quot;n&amp;quot; și dacă toate numerele din șir sunt mai mici sau egale cu 10000. Dacă toate aceste verificări trec, funcția returnează True, altfel returnează False și afișează un mesaj de eroare.&lt;br /&gt;
&lt;br /&gt;
În cadrul funcției principale &amp;quot;if __name__ == &#039;__main__&#039;:&amp;quot;, programul primește datele de intrare de la utilizator prin intermediul funcției &amp;quot;input&amp;quot;. Se citește întâi numărul &amp;quot;n&amp;quot;, apoi șirul de numere. Înainte de a apela funcția &amp;quot;calculeaza_suma_produse&amp;quot;, se validează datele introduse folosind funcția &amp;quot;valideaza_datele&amp;quot;. Dacă datele sunt valide, se calculează suma produselor și se afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3992_-_Count_C2&amp;diff=6308</id>
		<title>3992 - Count C2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3992_-_Count_C2&amp;diff=6308"/>
		<updated>2023-05-12T14:47:42Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3992/count-c2]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Calculați câte dintre ele au exact două cifre.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program primește un număr întreg pozitiv &#039;&#039;&#039;n&#039;&#039;&#039; și apoi citește n numere întregi de la utilizator. Apoi, programul numără și afișează numărul de numere cu exact două cifre (între 10 și 99 inclusiv) dintre cele n numere introduse de utilizator.&lt;br /&gt;
&lt;br /&gt;
Datele de ieșire ale acestui program sunt un singur număr întreg pozitiv, reprezentând numărul de numere cu exact două cifre dintre cele introduse de utilizator. Aceasta este afișată la finalul programului prin linia &#039;&#039;&#039;print(f&amp;quot;Datele introduse corespund cerintelor. \n{count}&amp;quot;)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
În cazul în care datele introduse nu sunt corecte programul va afișa mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 1000 20 3 41 576&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3992&lt;br /&gt;
def count_numbers_with_two_digits(numbers):&lt;br /&gt;
    count = 0  # contorul pentru numerele cu exact două cifre&lt;br /&gt;
&lt;br /&gt;
    for x in numbers:&lt;br /&gt;
        if 10 &amp;lt;= x &amp;lt; 100:  # verificăm dacă are exact două cifre&lt;br /&gt;
            count += 1&lt;br /&gt;
&lt;br /&gt;
    return count  # returnăm numărul de numere cu exact două cifre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_numbers(numbers):&lt;br /&gt;
    for x in numbers:&lt;br /&gt;
        if x &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Numar de numere: &amp;quot;))  # citim numărul de numere&lt;br /&gt;
    if validate_input(n):&lt;br /&gt;
        numbers = []&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            x = int(input(f&amp;quot;Numar {i+1}: &amp;quot;))&lt;br /&gt;
            numbers.append(x)&lt;br /&gt;
        if validate_numbers(numbers):&lt;br /&gt;
            count = count_numbers_with_two_digits(numbers)&lt;br /&gt;
            print(f&amp;quot;Datele introduse corespund cerintelor. \n{count}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program calculează numărul de numere cu exact două cifre dintr-o listă dată de utilizator. Programul verifică dacă datele introduse de utilizator sunt valide, adică numărul de numere și numerele în sine trebuie să se încadreze în anumite limite.&lt;br /&gt;
&lt;br /&gt;
Mai întâi, programul citește numărul de numere, apoi validează intrarea pentru a se asigura că se încadrează între 1 și 1000. Dacă intrarea este validă, programul cere utilizatorului să introducă numerele și le validează pentru a se asigura că fiecare număr are mai puțin de 10 cifre. Dacă și numerele sunt valide, programul numără numerele cu exact două cifre din listă și le afișează utilizatorului.&lt;br /&gt;
&lt;br /&gt;
În general, programul se poate utiliza pentru a verifica numărul de numere cu exact două cifre dintr-o listă dată și poate fi util într-o gamă largă de aplicații, inclusiv analiza de date și procesarea informațiilor.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6307</id>
		<title>4226 - Divizibil</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6307"/>
		<updated>2023-05-12T13:58:16Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Explicație rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4226/divizibil]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Teodora vă roagă sa o ajutați cu intrebările si va recompenseaza cu 100 de puncte.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul t ce poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;1&#039;&#039;&#039; se vor citi trei numere &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;2&#039;&#039;&#039; se vor citi patru numere n, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039;, &#039;&#039;&#039;c3&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran numărul &#039;&#039;&#039;ct&#039;&#039;&#039;, reprezentând numărul cerut și mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot; În caz contrar programul va afișa mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;t&#039;&#039;&#039; poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
* 2 &amp;amp;les; &#039;&#039;&#039;c1, c2, c3&#039;&#039;&#039; &amp;amp;les; 9&lt;br /&gt;
* oricare două cifre sunt prime intre ele&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
1&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
3&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
5&lt;br /&gt;
: Introduceți c:&lt;br /&gt;
7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4226&lt;br /&gt;
def calculeaza_rezultatul(cerinta, n, a=0, b=0, c=0):&lt;br /&gt;
    rezultat = n&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b))&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b) - (n // c)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b)) + (n // (b * c)) + (n // (a * c))&lt;br /&gt;
        rezultat = rezultat - (n // (a * b * c))&lt;br /&gt;
    return rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_cerinta(cerinta):&lt;br /&gt;
    if cerinta not in [1, 2]:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_variabila(variabila):&lt;br /&gt;
    if not 2 &amp;lt;= variabila &amp;lt;= 9:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_a_b_c(a, b, c):&lt;br /&gt;
    if not all([is_prime(i) for i in [a, b, c]]):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def is_prime(n):&lt;br /&gt;
    if n &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(n**0.5)+1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    print(&amp;quot;Introduceți cerința:&amp;quot;)&lt;br /&gt;
    cerinta = int(input())&lt;br /&gt;
    if not validate_cerinta(cerinta):&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Introduceți numărul total:&amp;quot;)&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        exit()&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b]]):&lt;br /&gt;
            exit()&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b)&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți c:&amp;quot;)&lt;br /&gt;
        c = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b, c]]):&lt;br /&gt;
            exit()&lt;br /&gt;
        if not validate_a_b_c(a, b, c):&lt;br /&gt;
            exit()&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        rezultat = n&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.\n&amp;quot;,rezultat)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acesta este un program care primește de la utilizator o cerință și o serie de numere și apoi calculează și afișează un rezultat în funcție de cerință și numerele introduse.&lt;br /&gt;
&lt;br /&gt;
Funcția principală a programului este &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039;, care primește ca parametri o cerință și una sau trei variabile, a, b și c, în funcție de cerință. În funcție de cerință, programul efectuează diferite operații matematice pe numărul total n și pe variabilele a, b și c și calculează un rezultat.&lt;br /&gt;
&lt;br /&gt;
Celelalte funcții din program, cum ar fi &#039;&#039;&#039;validate_cerinta()&#039;&#039;&#039;, &#039;&#039;&#039;validate_n()&#039;&#039;&#039;, &#039;&#039;&#039;validate_variabila()&#039;&#039;&#039; și &#039;&#039;&#039;validate_a_b_c()&#039;&#039;&#039;, sunt folosite pentru a valida input-ul utilizatorului și a asigura că acesta este corect și se află în limitele admise. Funcția &#039;&#039;&#039;is_prime()&#039;&#039;&#039; este utilizată pentru a verifica dacă o variabilă este primă.&lt;br /&gt;
&lt;br /&gt;
În cele din urmă, blocul &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;&#039;&#039;&#039; primește input-ul de la utilizator, validează datele introduse și apelează funcția &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039; pentru a calcula rezultatul cerut, apoi afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6306</id>
		<title>4226 - Divizibil</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6306"/>
		<updated>2023-05-12T13:57:27Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4226/divizibil]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Teodora vă roagă sa o ajutați cu intrebările si va recompenseaza cu 100 de puncte.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul t ce poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;1&#039;&#039;&#039; se vor citi trei numere &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;2&#039;&#039;&#039; se vor citi patru numere n, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039;, &#039;&#039;&#039;c3&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran numărul &#039;&#039;&#039;ct&#039;&#039;&#039;, reprezentând numărul cerut și mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot; În caz contrar programul va afișa mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;t&#039;&#039;&#039; poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
* 2 &amp;amp;les; &#039;&#039;&#039;c1, c2, c3&#039;&#039;&#039; &amp;amp;les; 9&lt;br /&gt;
* oricare două cifre sunt prime intre ele&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
1&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
3&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
5&lt;br /&gt;
: Introduceți c:&lt;br /&gt;
7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4226&lt;br /&gt;
def calculeaza_rezultatul(cerinta, n, a=0, b=0, c=0):&lt;br /&gt;
    rezultat = n&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b))&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b) - (n // c)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b)) + (n // (b * c)) + (n // (a * c))&lt;br /&gt;
        rezultat = rezultat - (n // (a * b * c))&lt;br /&gt;
    return rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_cerinta(cerinta):&lt;br /&gt;
    if cerinta not in [1, 2]:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_variabila(variabila):&lt;br /&gt;
    if not 2 &amp;lt;= variabila &amp;lt;= 9:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_a_b_c(a, b, c):&lt;br /&gt;
    if not all([is_prime(i) for i in [a, b, c]]):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def is_prime(n):&lt;br /&gt;
    if n &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(n**0.5)+1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    print(&amp;quot;Introduceți cerința:&amp;quot;)&lt;br /&gt;
    cerinta = int(input())&lt;br /&gt;
    if not validate_cerinta(cerinta):&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Introduceți numărul total:&amp;quot;)&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        exit()&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b]]):&lt;br /&gt;
            exit()&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b)&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți c:&amp;quot;)&lt;br /&gt;
        c = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b, c]]):&lt;br /&gt;
            exit()&lt;br /&gt;
        if not validate_a_b_c(a, b, c):&lt;br /&gt;
            exit()&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        rezultat = n&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.\n&amp;quot;,rezultat)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acesta este un program care primește de la utilizator o cerință și o serie de numere și apoi calculează și afișează un rezultat în funcție de cerință și numerele introduse.&lt;br /&gt;
&lt;br /&gt;
Funcția principală a programului este &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039;, care primește ca parametri o cerință și una sau trei variabile, a, b și c, în funcție de cerință. În funcție de cerință, programul efectuează diferite operații matematice pe numărul total n și pe variabilele a, b și c și calculează un rezultat.&lt;br /&gt;
&lt;br /&gt;
Celelalte funcții din program, cum ar fi &#039;&#039;&#039;validate_cerinta()&#039;&#039;&#039;, &#039;&#039;&#039;validate_n()&#039;&#039;&#039;, &#039;&#039;&#039;validate_variabila()&#039;&#039;&#039; și &#039;&#039;&#039;validate_a_b_c()&#039;&#039;&#039;, sunt folosite pentru a valida input-ul utilizatorului și a asigura că acesta este corect și se află în limitele admise. Funcția &#039;&#039;&#039;is_prime()&#039;&#039;&#039; este utilizată pentru a verifica dacă o variabilă este primă.&lt;br /&gt;
&lt;br /&gt;
În cele din urmă, funcția &#039;&#039;&#039;main()&#039;&#039;&#039; primește input-ul de la utilizator, validează datele introduse și apelează funcția &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039; pentru a calcula rezultatul cerut, apoi afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6305</id>
		<title>4226 - Divizibil</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6305"/>
		<updated>2023-05-12T13:56:16Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4226/divizibil]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Teodora vă roagă sa o ajutați cu intrebările si va recompenseaza cu 100 de puncte.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul t ce poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;1&#039;&#039;&#039; se vor citi trei numere &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;2&#039;&#039;&#039; se vor citi patru numere n, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039;, &#039;&#039;&#039;c3&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran numărul &#039;&#039;&#039;ct&#039;&#039;&#039;, reprezentând numărul cerut.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;t&#039;&#039;&#039; poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
* 2 &amp;amp;les; &#039;&#039;&#039;c1, c2, c3&#039;&#039;&#039; &amp;amp;les; 9&lt;br /&gt;
* oricare două cifre sunt prime intre ele&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
1&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
3&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
5&lt;br /&gt;
: Introduceți c:&lt;br /&gt;
7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4226&lt;br /&gt;
def calculeaza_rezultatul(cerinta, n, a=0, b=0, c=0):&lt;br /&gt;
    rezultat = n&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b))&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b) - (n // c)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b)) + (n // (b * c)) + (n // (a * c))&lt;br /&gt;
        rezultat = rezultat - (n // (a * b * c))&lt;br /&gt;
    return rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_cerinta(cerinta):&lt;br /&gt;
    if cerinta not in [1, 2]:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_variabila(variabila):&lt;br /&gt;
    if not 2 &amp;lt;= variabila &amp;lt;= 9:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_a_b_c(a, b, c):&lt;br /&gt;
    if not all([is_prime(i) for i in [a, b, c]]):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def is_prime(n):&lt;br /&gt;
    if n &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(n**0.5)+1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    print(&amp;quot;Introduceți cerința:&amp;quot;)&lt;br /&gt;
    cerinta = int(input())&lt;br /&gt;
    if not validate_cerinta(cerinta):&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Introduceți numărul total:&amp;quot;)&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        exit()&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b]]):&lt;br /&gt;
            exit()&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b)&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți c:&amp;quot;)&lt;br /&gt;
        c = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b, c]]):&lt;br /&gt;
            exit()&lt;br /&gt;
        if not validate_a_b_c(a, b, c):&lt;br /&gt;
            exit()&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        rezultat = n&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.\n&amp;quot;,rezultat)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acesta este un program care primește de la utilizator o cerință și o serie de numere și apoi calculează și afișează un rezultat în funcție de cerință și numerele introduse.&lt;br /&gt;
&lt;br /&gt;
Funcția principală a programului este &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039;, care primește ca parametri o cerință și una sau trei variabile, a, b și c, în funcție de cerință. În funcție de cerință, programul efectuează diferite operații matematice pe numărul total n și pe variabilele a, b și c și calculează un rezultat.&lt;br /&gt;
&lt;br /&gt;
Celelalte funcții din program, cum ar fi &#039;&#039;&#039;validate_cerinta()&#039;&#039;&#039;, &#039;&#039;&#039;validate_n()&#039;&#039;&#039;, &#039;&#039;&#039;validate_variabila()&#039;&#039;&#039; și &#039;&#039;&#039;validate_a_b_c()&#039;&#039;&#039;, sunt folosite pentru a valida input-ul utilizatorului și a asigura că acesta este corect și se află în limitele admise. Funcția &#039;&#039;&#039;is_prime()&#039;&#039;&#039; este utilizată pentru a verifica dacă o variabilă este primă.&lt;br /&gt;
&lt;br /&gt;
În cele din urmă, funcția &#039;&#039;&#039;main()&#039;&#039;&#039; primește input-ul de la utilizator, validează datele introduse și apelează funcția &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039; pentru a calcula rezultatul cerut, apoi afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6304</id>
		<title>4226 - Divizibil</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6304"/>
		<updated>2023-05-12T13:56:01Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4226/divizibil]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Teodora vă roagă sa o ajutați cu intrebările si va recompenseaza cu 100 de puncte.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul t ce poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;1&#039;&#039;&#039; se vor citi trei numere &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;2&#039;&#039;&#039; se vor citi patru numere n, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039;, &#039;&#039;&#039;c3&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran numărul &#039;&#039;&#039;ct&#039;&#039;&#039;, reprezentând numărul cerut.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;t&#039;&#039;&#039; poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
* 2 &amp;amp;les; &#039;&#039;&#039;c1, c2, c3&#039;&#039;&#039; &amp;amp;les; 9&lt;br /&gt;
* oricare două cifre sunt prime intre ele&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
1&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
3&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
5&lt;br /&gt;
: Introduceți c:&lt;br /&gt;
7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4226&lt;br /&gt;
def calculeaza_rezultatul(cerinta, n, a=0, b=0, c=0):&lt;br /&gt;
    rezultat = n&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b))&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b) - (n // c)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b)) + (n // (b * c)) + (n // (a * c))&lt;br /&gt;
        rezultat = rezultat - (n // (a * b * c))&lt;br /&gt;
    return rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_cerinta(cerinta):&lt;br /&gt;
    if cerinta not in [1, 2]:&lt;br /&gt;
        print(&amp;quot;Cerinta trebuie sa fie 1 sau 2.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000000:&lt;br /&gt;
        print(&amp;quot;n trebuie sa fie intre 1 si 1000000000.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_variabila(variabila):&lt;br /&gt;
    if not 2 &amp;lt;= variabila &amp;lt;= 9:&lt;br /&gt;
        print(&amp;quot;Variabila trebuie sa fie intre 2 si 9.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_a_b_c(a, b, c):&lt;br /&gt;
    if not all([is_prime(i) for i in [a, b, c]]):&lt;br /&gt;
        print(&amp;quot;Variabilele a, b si c trebuie sa fie prime intre ele.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def is_prime(n):&lt;br /&gt;
    if n &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(n**0.5)+1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    print(&amp;quot;Introduceți cerința:&amp;quot;)&lt;br /&gt;
    cerinta = int(input())&lt;br /&gt;
    if not validate_cerinta(cerinta):&lt;br /&gt;
        return&lt;br /&gt;
    print(&amp;quot;Introduceți numărul total:&amp;quot;)&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        return&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b]]):&lt;br /&gt;
            return&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b)&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți c:&amp;quot;)&lt;br /&gt;
        c = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b, c]]):&lt;br /&gt;
            return&lt;br /&gt;
        if not validate_a_b_c(a, b, c):&lt;br /&gt;
            return&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        rezultat = n&lt;br /&gt;
    print(&amp;quot;Rezultatul este:&amp;quot;, rezultat)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acesta este un program care primește de la utilizator o cerință și o serie de numere și apoi calculează și afișează un rezultat în funcție de cerință și numerele introduse.&lt;br /&gt;
&lt;br /&gt;
Funcția principală a programului este &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039;, care primește ca parametri o cerință și una sau trei variabile, a, b și c, în funcție de cerință. În funcție de cerință, programul efectuează diferite operații matematice pe numărul total n și pe variabilele a, b și c și calculează un rezultat.&lt;br /&gt;
&lt;br /&gt;
Celelalte funcții din program, cum ar fi &#039;&#039;&#039;validate_cerinta()&#039;&#039;&#039;, &#039;&#039;&#039;validate_n()&#039;&#039;&#039;, &#039;&#039;&#039;validate_variabila()&#039;&#039;&#039; și &#039;&#039;&#039;validate_a_b_c()&#039;&#039;&#039;, sunt folosite pentru a valida input-ul utilizatorului și a asigura că acesta este corect și se află în limitele admise. Funcția &#039;&#039;&#039;is_prime()&#039;&#039;&#039; este utilizată pentru a verifica dacă o variabilă este primă.&lt;br /&gt;
&lt;br /&gt;
În cele din urmă, funcția &#039;&#039;&#039;main()&#039;&#039;&#039; primește input-ul de la utilizator, validează datele introduse și apelează funcția &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039; pentru a calcula rezultatul cerut, apoi afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6303</id>
		<title>4226 - Divizibil</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4226_-_Divizibil&amp;diff=6303"/>
		<updated>2023-05-12T13:55:43Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4226/divizibil]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Teodora vă roagă sa o ajutați cu intrebările si va recompenseaza cu 100 de puncte.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul t ce poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;1&#039;&#039;&#039; se vor citi trei numere &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
Dacă &#039;&#039;&#039;t&#039;&#039;&#039; este &#039;&#039;&#039;2&#039;&#039;&#039; se vor citi patru numere n, &#039;&#039;&#039;c1&#039;&#039;&#039;, &#039;&#039;&#039;c2&#039;&#039;&#039;, &#039;&#039;&#039;c3&#039;&#039;&#039; cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran numărul &#039;&#039;&#039;ct&#039;&#039;&#039;, reprezentând numărul cerut.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;t&#039;&#039;&#039; poate fi &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000.000.000&lt;br /&gt;
* 2 &amp;amp;les; &#039;&#039;&#039;c1, c2, c3&#039;&#039;&#039; &amp;amp;les; 9&lt;br /&gt;
* oricare două cifre sunt prime intre ele&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
1&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți cerința:&lt;br /&gt;
2&lt;br /&gt;
: Introduceți numărul total:&lt;br /&gt;
10&lt;br /&gt;
: Introduceți a:&lt;br /&gt;
3&lt;br /&gt;
: Introduceți b:&lt;br /&gt;
5&lt;br /&gt;
: Introduceți c:&lt;br /&gt;
7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este: 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4226&lt;br /&gt;
def calculeaza_rezultatul(cerinta, n, a=0, b=0, c=0):&lt;br /&gt;
    rezultat = n&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b))&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        rezultat = rezultat - (n // a) - (n // b) - (n // c)&lt;br /&gt;
        rezultat = rezultat + (n // (a * b)) + (n // (b * c)) + (n // (a * c))&lt;br /&gt;
        rezultat = rezultat - (n // (a * b * c))&lt;br /&gt;
    return rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_cerinta(cerinta):&lt;br /&gt;
    if cerinta not in [1, 2]:&lt;br /&gt;
        print(&amp;quot;Cerinta trebuie sa fie 1 sau 2.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000000000:&lt;br /&gt;
        print(&amp;quot;n trebuie sa fie intre 1 si 1000000000.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_variabila(variabila):&lt;br /&gt;
    if not 2 &amp;lt;= variabila &amp;lt;= 9:&lt;br /&gt;
        print(&amp;quot;Variabila trebuie sa fie intre 2 si 9.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_a_b_c(a, b, c):&lt;br /&gt;
    if not all([is_prime(i) for i in [a, b, c]]):&lt;br /&gt;
        print(&amp;quot;Variabilele a, b si c trebuie sa fie prime intre ele.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def is_prime(n):&lt;br /&gt;
    if n &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(n**0.5)+1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    print(&amp;quot;Introduceți cerința:&amp;quot;)&lt;br /&gt;
    cerinta = int(input())&lt;br /&gt;
    if not validate_cerinta(cerinta):&lt;br /&gt;
        return&lt;br /&gt;
    print(&amp;quot;Introduceți numărul total:&amp;quot;)&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        return&lt;br /&gt;
    if cerinta == 1:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b]]):&lt;br /&gt;
            return&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b)&lt;br /&gt;
    elif cerinta == 2:&lt;br /&gt;
        print(&amp;quot;Introduceți a:&amp;quot;)&lt;br /&gt;
        a = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți b:&amp;quot;)&lt;br /&gt;
        b = int(input())&lt;br /&gt;
        print(&amp;quot;Introduceți c:&amp;quot;)&lt;br /&gt;
        c = int(input())&lt;br /&gt;
        if not all([validate_variabila(i) for i in [a, b, c]]):&lt;br /&gt;
            return&lt;br /&gt;
        if not validate_a_b_c(a, b, c):&lt;br /&gt;
            return&lt;br /&gt;
        rezultat = calculeaza_rezultatul(cerinta, n, a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        rezultat = n&lt;br /&gt;
    print(&amp;quot;Rezultatul este:&amp;quot;, rezultat)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acesta este un program care primește de la utilizator o cerință și o serie de numere și apoi calculează și afișează un rezultat în funcție de cerință și numerele introduse.&lt;br /&gt;
&lt;br /&gt;
Funcția principală a programului este &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039;, care primește ca parametri o cerință și una sau trei variabile, a, b și c, în funcție de cerință. În funcție de cerință, programul efectuează diferite operații matematice pe numărul total n și pe variabilele a, b și c și calculează un rezultat.&lt;br /&gt;
&lt;br /&gt;
Celelalte funcții din program, cum ar fi &#039;&#039;&#039;validate_cerinta()&#039;&#039;&#039;, &#039;&#039;&#039;validate_n()&#039;&#039;&#039;, &#039;&#039;&#039;validate_variabila()&#039;&#039;&#039; și &#039;&#039;&#039;validate_a_b_c()&#039;&#039;&#039;, sunt folosite pentru a valida input-ul utilizatorului și a asigura că acesta este corect și se află în limitele admise. Funcția &#039;&#039;&#039;is_prime()&#039;&#039;&#039; este utilizată pentru a verifica dacă o variabilă este primă.&lt;br /&gt;
&lt;br /&gt;
În cele din urmă, funcția &#039;&#039;&#039;main()&#039;&#039;&#039; primește input-ul de la utilizator, validează datele introduse și apelează funcția &#039;&#039;&#039;calculeaza_rezultatul()&#039;&#039;&#039; pentru a calcula rezultatul cerut, apoi afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3183_-_RATC&amp;diff=6302</id>
		<title>3183 - RATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3183_-_RATC&amp;diff=6302"/>
		<updated>2023-05-12T13:52:11Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3183/ratc]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Urmărind traseul autobuzului și cunoscând câte persoane urcă și coboară la fiecare stație, să se afle:&lt;br /&gt;
&lt;br /&gt;
a) Numărul total de persoane care au urcat în autobuz, numărul total de persoane care au coborât din autobuz și numărul de persoane aflate în autobuz după terminarea traseului.&lt;br /&gt;
&lt;br /&gt;
b) Știind că Alexandru se află la stația cu numărul de ordin &#039;&#039;&#039;x&#039;&#039;&#039;, să se afle dacă autobuzul în care urmează să urce este aglomerat. Un autobuz este considerat aglomerat dacă în el se află cel puțin &#039;&#039;&#039;y&#039;&#039;&#039; persoane înainte să ajungă în stație.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele naturale &#039;&#039;&#039;n x y p&#039;&#039;&#039; și apoi n perechi de numere &#039;&#039;&#039;Xi&#039;&#039;&#039;, &#039;&#039;&#039;Yi&#039;&#039;&#039; naturale care reprezintă numărul de persoane care au urcat, respectiv coborât la stația &#039;&#039;&#039;i&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă p = 1, atunci se va rezolva numai cerința &#039;&#039;&#039;a)&#039;&#039;&#039;. În acest caz, se vor scrie pe aceeași linie 3 numere separate prin câte un spațiu, cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
Dacă p = 2, atunci se va rezolva numai cerința &#039;&#039;&#039;b)&#039;&#039;&#039;. În acest caz, se va scrie pe prima linie &#039;&#039;&#039;DA&#039;&#039;&#039; dacă autobuzul este aglomerat, respectiv &#039;&#039;&#039;NU&#039;&#039;&#039; dacă autobuzul nu este aglomerat.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;x&#039;&#039;&#039; &amp;amp;les; n&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;y&#039;&#039;&#039; &amp;amp;les; 10000&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;&#039;Xi, Yi&#039;&#039;&#039; &amp;amp;les; 2000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 2 10 1 &lt;br /&gt;
: 3 0&lt;br /&gt;
: 2 1&lt;br /&gt;
: 5 6&lt;br /&gt;
: 4 3&lt;br /&gt;
: 3 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 17 11 6&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 2 10 2 &lt;br /&gt;
: 3 0&lt;br /&gt;
: 2 1&lt;br /&gt;
: 5 6&lt;br /&gt;
: 4 3&lt;br /&gt;
: 3 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: NU&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3183&lt;br /&gt;
def read_input(n):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Citeste valorile de x si y pentru n obiecte si calculeaza suma x si suma y&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u, c = 0, 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        u += x&lt;br /&gt;
        c += y&lt;br /&gt;
    return u, c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, x, y):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Validează input-ul în funcție de condițiile date&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 1000):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= x &amp;lt;= n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= y &amp;lt;= 10000):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_output_1(n, x, y, p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculeaza output-ul pentru cazul in care p=1&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u, c = read_input(n)&lt;br /&gt;
    print(u, c, u-c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_output_2(n, x, y, p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculeaza output-ul pentru cazul in care p=2&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u = 0&lt;br /&gt;
    for i in range(1, x):&lt;br /&gt;
        a, b = map(int, input().split())&lt;br /&gt;
        u += a - b&lt;br /&gt;
    for i in range(x, n+1):&lt;br /&gt;
        a, b = map(int, input().split())&lt;br /&gt;
    if u &amp;lt; y:&lt;br /&gt;
        print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n, x, y, p = map(int, input().split())&lt;br /&gt;
    if not validate_input(n, x, y):&lt;br /&gt;
        exit()&lt;br /&gt;
    if p == 1:&lt;br /&gt;
        calculate_output_1(n, x, y, p)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerinterlor.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        calculate_output_2(n, x, y, p)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acest program efectuează o sarcină specifică, dar nu este clar din numele funcțiilor și din numele variabilelor ce anume face programul. Este nevoie de mai multe informații despre sarcina pe care acest program o îndeplinește pentru a putea oferi o explicație mai precisă.&lt;br /&gt;
&lt;br /&gt;
În principiu, programul primește de la utilizator patru valori: &#039;&#039;&#039;n, x, y și p&#039;&#039;&#039;. Apoi, se efectuează o validare a valorilor introduse, iar dacă acestea sunt acceptate, programul trece la calcularea unui anumit output în funcție de valoarea lui p.&lt;br /&gt;
&lt;br /&gt;
Dacă p este 1, programul va citi valorile de &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039; pentru n obiecte și va calcula suma valorilor lui &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039;, apoi va afișa diferența dintre cele două sume.&lt;br /&gt;
&lt;br /&gt;
Dacă p este 2, programul va citi valorile de &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039; pentru n obiecte și va face o anumită verificare a acestor valori, după care va afișa &#039;&#039;&#039;DA&#039;&#039;&#039; sau &#039;&#039;&#039;NU&#039;&#039;&#039;, în funcție de condițiile verificate.&lt;br /&gt;
&lt;br /&gt;
În esență, programul pare să efectueze calcule și verificări pe baza valorilor primite de la utilizator, dar nu este clar care este contextul sau problema specifică care trebuie rezolvată cu ajutorul acestor calcule și verificări.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3183_-_RATC&amp;diff=6301</id>
		<title>3183 - RATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3183_-_RATC&amp;diff=6301"/>
		<updated>2023-05-12T13:51:55Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3183/ratc]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Urmărind traseul autobuzului și cunoscând câte persoane urcă și coboară la fiecare stație, să se afle:&lt;br /&gt;
&lt;br /&gt;
a) Numărul total de persoane care au urcat în autobuz, numărul total de persoane care au coborât din autobuz și numărul de persoane aflate în autobuz după terminarea traseului.&lt;br /&gt;
&lt;br /&gt;
b) Știind că Alexandru se află la stația cu numărul de ordin &#039;&#039;&#039;x&#039;&#039;&#039;, să se afle dacă autobuzul în care urmează să urce este aglomerat. Un autobuz este considerat aglomerat dacă în el se află cel puțin &#039;&#039;&#039;y&#039;&#039;&#039; persoane înainte să ajungă în stație.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele naturale &#039;&#039;&#039;n x y p&#039;&#039;&#039; și apoi n perechi de numere &#039;&#039;&#039;Xi&#039;&#039;&#039;, &#039;&#039;&#039;Yi&#039;&#039;&#039; naturale care reprezintă numărul de persoane care au urcat, respectiv coborât la stația &#039;&#039;&#039;i&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă p = 1, atunci se va rezolva numai cerința &#039;&#039;&#039;a)&#039;&#039;&#039;. În acest caz, se vor scrie pe aceeași linie 3 numere separate prin câte un spațiu, cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
Dacă p = 2, atunci se va rezolva numai cerința &#039;&#039;&#039;b)&#039;&#039;&#039;. În acest caz, se va scrie pe prima linie &#039;&#039;&#039;DA&#039;&#039;&#039; dacă autobuzul este aglomerat, respectiv &#039;&#039;&#039;NU&#039;&#039;&#039; dacă autobuzul nu este aglomerat.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;x&#039;&#039;&#039; &amp;amp;les; n&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;y&#039;&#039;&#039; &amp;amp;les; 10000&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;&#039;Xi, Yi&#039;&#039;&#039; &amp;amp;les; 2000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 2 10 1 &lt;br /&gt;
: 3 0&lt;br /&gt;
: 2 1&lt;br /&gt;
: 5 6&lt;br /&gt;
: 4 3&lt;br /&gt;
: 3 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 17 11 6&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 2 10 2 &lt;br /&gt;
: 3 0&lt;br /&gt;
: 2 1&lt;br /&gt;
: 5 6&lt;br /&gt;
: 4 3&lt;br /&gt;
: 3 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: NU&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3183&lt;br /&gt;
def read_input(n):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Citeste valorile de x si y pentru n obiecte si calculeaza suma x si suma y&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u, c = 0, 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        u += x&lt;br /&gt;
        c += y&lt;br /&gt;
    return u, c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, x, y):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Validează input-ul în funcție de condițiile date&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 1000):&lt;br /&gt;
        print(&amp;quot;Eroare: n trebuie să fie între 1 și 1000&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= x &amp;lt;= n):&lt;br /&gt;
        print(&amp;quot;Eroare: x trebuie să fie între 1 și n&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= y &amp;lt;= 10000):&lt;br /&gt;
        print(&amp;quot;Eroare: y trebuie să fie între 1 și 10000&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_output_1(n, x, y, p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculeaza output-ul pentru cazul in care p=1&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u, c = read_input(n)&lt;br /&gt;
    print(u, c, u-c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_output_2(n, x, y, p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculeaza output-ul pentru cazul in care p=2&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u = 0&lt;br /&gt;
    for i in range(1, x):&lt;br /&gt;
        a, b = map(int, input().split())&lt;br /&gt;
        u += a - b&lt;br /&gt;
    for i in range(x, n+1):&lt;br /&gt;
        a, b = map(int, input().split())&lt;br /&gt;
    if u &amp;lt; y:&lt;br /&gt;
        print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n, x, y, p = map(int, input().split())&lt;br /&gt;
    if not validate_input(n, x, y):&lt;br /&gt;
        exit()&lt;br /&gt;
    if p == 1:&lt;br /&gt;
        calculate_output_1(n, x, y, p)&lt;br /&gt;
    else:&lt;br /&gt;
        calculate_output_2(n, x, y, p)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acest program efectuează o sarcină specifică, dar nu este clar din numele funcțiilor și din numele variabilelor ce anume face programul. Este nevoie de mai multe informații despre sarcina pe care acest program o îndeplinește pentru a putea oferi o explicație mai precisă.&lt;br /&gt;
&lt;br /&gt;
În principiu, programul primește de la utilizator patru valori: &#039;&#039;&#039;n, x, y și p&#039;&#039;&#039;. Apoi, se efectuează o validare a valorilor introduse, iar dacă acestea sunt acceptate, programul trece la calcularea unui anumit output în funcție de valoarea lui p.&lt;br /&gt;
&lt;br /&gt;
Dacă p este 1, programul va citi valorile de &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039; pentru n obiecte și va calcula suma valorilor lui &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039;, apoi va afișa diferența dintre cele două sume.&lt;br /&gt;
&lt;br /&gt;
Dacă p este 2, programul va citi valorile de &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039; pentru n obiecte și va face o anumită verificare a acestor valori, după care va afișa &#039;&#039;&#039;DA&#039;&#039;&#039; sau &#039;&#039;&#039;NU&#039;&#039;&#039;, în funcție de condițiile verificate.&lt;br /&gt;
&lt;br /&gt;
În esență, programul pare să efectueze calcule și verificări pe baza valorilor primite de la utilizator, dar nu este clar care este contextul sau problema specifică care trebuie rezolvată cu ajutorul acestor calcule și verificări.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3183_-_RATC&amp;diff=6300</id>
		<title>3183 - RATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3183_-_RATC&amp;diff=6300"/>
		<updated>2023-05-12T13:51:01Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3183/ratc]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Urmărind traseul autobuzului și cunoscând câte persoane urcă și coboară la fiecare stație, să se afle:&lt;br /&gt;
&lt;br /&gt;
a) Numărul total de persoane care au urcat în autobuz, numărul total de persoane care au coborât din autobuz și numărul de persoane aflate în autobuz după terminarea traseului.&lt;br /&gt;
&lt;br /&gt;
b) Știind că Alexandru se află la stația cu numărul de ordin &#039;&#039;&#039;x&#039;&#039;&#039;, să se afle dacă autobuzul în care urmează să urce este aglomerat. Un autobuz este considerat aglomerat dacă în el se află cel puțin &#039;&#039;&#039;y&#039;&#039;&#039; persoane înainte să ajungă în stație.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele naturale &#039;&#039;&#039;n x y p&#039;&#039;&#039; și apoi n perechi de numere &#039;&#039;&#039;Xi&#039;&#039;&#039;, &#039;&#039;&#039;Yi&#039;&#039;&#039; naturale care reprezintă numărul de persoane care au urcat, respectiv coborât la stația &#039;&#039;&#039;i&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă p = 1, atunci se va rezolva numai cerința &#039;&#039;&#039;a)&#039;&#039;&#039;. În acest caz, se vor scrie pe aceeași linie 3 numere separate prin câte un spațiu, cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
Dacă p = 2, atunci se va rezolva numai cerința &#039;&#039;&#039;b)&#039;&#039;&#039;. În acest caz, se va scrie pe prima linie &#039;&#039;&#039;DA&#039;&#039;&#039; dacă autobuzul este aglomerat, respectiv &#039;&#039;&#039;NU&#039;&#039;&#039; dacă autobuzul nu este aglomerat.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;x&#039;&#039;&#039; &amp;amp;les; n&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;y&#039;&#039;&#039; &amp;amp;les; 10000&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;&#039;Xi, Yi&#039;&#039;&#039; &amp;amp;les; 2000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 2 10 1 &lt;br /&gt;
: 3 0&lt;br /&gt;
: 2 1&lt;br /&gt;
: 5 6&lt;br /&gt;
: 4 3&lt;br /&gt;
: 3 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 17 11 6&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 2 10 2 &lt;br /&gt;
: 3 0&lt;br /&gt;
: 2 1&lt;br /&gt;
: 5 6&lt;br /&gt;
: 4 3&lt;br /&gt;
: 3 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: NU&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3183&lt;br /&gt;
def read_input(n):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Citeste valorile de x si y pentru n obiecte si calculeaza suma x si suma y&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u, c = 0, 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        u += x&lt;br /&gt;
        c += y&lt;br /&gt;
    return u, c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, x, y):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Validează input-ul în funcție de condițiile date&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 1000):&lt;br /&gt;
        print(&amp;quot;Eroare: n trebuie să fie între 1 și 1000&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= x &amp;lt;= n):&lt;br /&gt;
        print(&amp;quot;Eroare: x trebuie să fie între 1 și n&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= y &amp;lt;= 10000):&lt;br /&gt;
        print(&amp;quot;Eroare: y trebuie să fie între 1 și 10000&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_output_1(n, x, y, p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculeaza output-ul pentru cazul in care p=1&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u, c = read_input(n)&lt;br /&gt;
    print(u, c, u-c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_output_2(n, x, y, p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Calculeaza output-ul pentru cazul in care p=2&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    u = 0&lt;br /&gt;
    for i in range(1, x):&lt;br /&gt;
        a, b = map(int, input().split())&lt;br /&gt;
        u += a - b&lt;br /&gt;
    for i in range(x, n+1):&lt;br /&gt;
        a, b = map(int, input().split())&lt;br /&gt;
    if u &amp;lt; y:&lt;br /&gt;
        print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n, x, y, p = map(int, input().split())&lt;br /&gt;
    if not validate_input(n, x, y):&lt;br /&gt;
        exit()&lt;br /&gt;
    if p == 1:&lt;br /&gt;
        calculate_output_1(n, x, y, p)&lt;br /&gt;
    else:&lt;br /&gt;
        calculate_output_2(n, x, y, p)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Acest program efectuează o sarcină specifică, dar nu este clar din numele funcțiilor și din numele variabilelor ce anume face programul. Este nevoie de mai multe informații despre sarcina pe care acest program o îndeplinește pentru a putea oferi o explicație mai precisă.&lt;br /&gt;
&lt;br /&gt;
În principiu, programul primește de la utilizator patru valori: &#039;&#039;&#039;n, x, y și p&#039;&#039;&#039;. Apoi, se efectuează o validare a valorilor introduse, iar dacă acestea sunt acceptate, programul trece la calcularea unui anumit output în funcție de valoarea lui p.&lt;br /&gt;
&lt;br /&gt;
Dacă p este 1, programul va citi valorile de &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039; pentru n obiecte și va calcula suma valorilor lui &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039;, apoi va afișa diferența dintre cele două sume.&lt;br /&gt;
&lt;br /&gt;
Dacă p este 2, programul va citi valorile de &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039; pentru n obiecte și va face o anumită verificare a acestor valori, după care va afișa &#039;&#039;&#039;DA&#039;&#039;&#039; sau &#039;&#039;&#039;NU&#039;&#039;&#039;, în funcție de condițiile verificate.&lt;br /&gt;
&lt;br /&gt;
În esență, programul pare să efectueze calcule și verificări pe baza valorilor primite de la utilizator, dar nu este clar care este contextul sau problema specifică care trebuie rezolvată cu ajutorul acestor calcule și verificări.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6299</id>
		<title>0057 - N Suma</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6299"/>
		<updated>2023-05-12T13:45:57Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/57/n-suma]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să citească &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi și să calculeze suma lor.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele linii &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
În cazul în care datele sunt introduse corect fișierul de ieșire &#039;&#039;&#039;n_suma.out&#039;&#039;&#039; va conține pe prima linie numărul S, reprezentând suma celor n numere citite din fișierul de intrare și în consolă se va afișa mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot; În caz contrar programul va afișa mesajul &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
* valoarea absolută a celor &#039;&#039;&#039;n&#039;&#039;&#039; numere citite va fi mai mică decât &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;n_suma.in&#039;&#039;&lt;br /&gt;
: 5&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;n_suma.out&#039;&#039;&lt;br /&gt;
: 15&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;n_suma.in&#039;&#039;&lt;br /&gt;
: 3&lt;br /&gt;
: 3&lt;br /&gt;
: 5&lt;br /&gt;
: 9&lt;br /&gt;
: 2&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;n_suma.out&#039;&#039;&lt;br /&gt;
: 17&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0057&lt;br /&gt;
def validate_input(n, numbers):&lt;br /&gt;
    if n &amp;lt; 0 or n &amp;gt; 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    for num in numbers:&lt;br /&gt;
        if abs(num) &amp;gt;= 1000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&amp;quot;n_suma.in&amp;quot;, &amp;quot;r&amp;quot;) as istr, open(&amp;quot;n_suma.out&amp;quot;, &amp;quot;w&amp;quot;) as ostr:&lt;br /&gt;
        n = int(istr.readline())&lt;br /&gt;
        numbers = []&lt;br /&gt;
        for i in range(1, n + 1):&lt;br /&gt;
            num = int(istr.readline())&lt;br /&gt;
            numbers.append(num)&lt;br /&gt;
&lt;br /&gt;
        if not validate_input(n, numbers):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        s = sum(numbers)&lt;br /&gt;
        ostr.write(str(s))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program citeste un numar intreg n din fisierul &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; si o lista de numere intregi numbers de lungime &#039;&#039;&#039;n&#039;&#039;&#039;, apoi calculeaza suma tuturor numerelor din lista si o scrie in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Inainte de a efectua calculele, programul verifica daca datele de intrare sunt valide, folosind functia &#039;&#039;&#039;validate_input(n, numbers)&#039;&#039;&#039;. Aceasta functie returneaza False daca n este negativ sau depaseste 1000 sau daca orice element din numbers are o valoare absoluta mai mare sau egala cu 1000. Daca datele de intrare nu sunt valide, programul scrie mesajul &amp;quot;Date de intrare invalide&amp;quot; in fisierul &amp;quot;n_suma.out&amp;quot; si se opreste prin instructiunea return.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6298</id>
		<title>0057 - N Suma</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6298"/>
		<updated>2023-05-12T13:43:42Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Explicatie rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/57/n-suma]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să citească &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi și să calculeze suma lor.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele linii &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;relativ.out&#039;&#039;&#039; va conține pe prima linie numărul &#039;&#039;&#039;k&#039;&#039;&#039;, reprezentând numărul termenilor din şir care sunt minime relative, iar pe a doua linie maximul sumei elementelor dintr-o secvenţă cuprinsă între două minime relative consecutive din şir, inclusiv acestea.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
* valoarea absolută a celor &#039;&#039;&#039;n&#039;&#039;&#039; numere citite va fi mai mică decât &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;n_suma.in&#039;&#039;&lt;br /&gt;
: 5&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;n_suma.out&#039;&#039;&lt;br /&gt;
: 15&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;n_suma.in&#039;&#039;&lt;br /&gt;
: 3&lt;br /&gt;
: 3&lt;br /&gt;
: 5&lt;br /&gt;
: 9&lt;br /&gt;
: 2&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;n_suma.out&#039;&#039;&lt;br /&gt;
: 17&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0057&lt;br /&gt;
def validate_input(n, numbers):&lt;br /&gt;
    if n &amp;lt; 0 or n &amp;gt; 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    for num in numbers:&lt;br /&gt;
        if abs(num) &amp;gt;= 1000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&amp;quot;n_suma.in&amp;quot;, &amp;quot;r&amp;quot;) as istr, open(&amp;quot;n_suma.out&amp;quot;, &amp;quot;w&amp;quot;) as ostr:&lt;br /&gt;
        n = int(istr.readline())&lt;br /&gt;
        numbers = []&lt;br /&gt;
        for i in range(1, n + 1):&lt;br /&gt;
            num = int(istr.readline())&lt;br /&gt;
            numbers.append(num)&lt;br /&gt;
&lt;br /&gt;
        if not validate_input(n, numbers):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        s = sum(numbers)&lt;br /&gt;
        ostr.write(str(s))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program citeste un numar intreg n din fisierul &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; si o lista de numere intregi numbers de lungime &#039;&#039;&#039;n&#039;&#039;&#039;, apoi calculeaza suma tuturor numerelor din lista si o scrie in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Inainte de a efectua calculele, programul verifica daca datele de intrare sunt valide, folosind functia &#039;&#039;&#039;validate_input(n, numbers)&#039;&#039;&#039;. Aceasta functie returneaza False daca n este negativ sau depaseste 1000 sau daca orice element din numbers are o valoare absoluta mai mare sau egala cu 1000. Daca datele de intrare nu sunt valide, programul scrie mesajul &amp;quot;Date de intrare invalide&amp;quot; in fisierul &amp;quot;n_suma.out&amp;quot; si se opreste prin instructiunea return.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6297</id>
		<title>0057 - N Suma</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6297"/>
		<updated>2023-05-12T13:43:12Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/57/n-suma]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să citească &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi și să calculeze suma lor.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele linii &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;relativ.out&#039;&#039;&#039; va conține pe prima linie numărul &#039;&#039;&#039;k&#039;&#039;&#039;, reprezentând numărul termenilor din şir care sunt minime relative, iar pe a doua linie maximul sumei elementelor dintr-o secvenţă cuprinsă între două minime relative consecutive din şir, inclusiv acestea.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
* valoarea absolută a celor &#039;&#039;&#039;n&#039;&#039;&#039; numere citite va fi mai mică decât &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;n_suma.in&#039;&#039;&lt;br /&gt;
: 5&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;n_suma.out&#039;&#039;&lt;br /&gt;
: 15&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;n_suma.in&#039;&#039;&lt;br /&gt;
: 3&lt;br /&gt;
: 3&lt;br /&gt;
: 5&lt;br /&gt;
: 9&lt;br /&gt;
: 2&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;n_suma.out&#039;&#039;&lt;br /&gt;
: 17&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0057&lt;br /&gt;
def validate_input(n, numbers):&lt;br /&gt;
    if n &amp;lt; 0 or n &amp;gt; 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    for num in numbers:&lt;br /&gt;
        if abs(num) &amp;gt;= 1000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&amp;quot;n_suma.in&amp;quot;, &amp;quot;r&amp;quot;) as istr, open(&amp;quot;n_suma.out&amp;quot;, &amp;quot;w&amp;quot;) as ostr:&lt;br /&gt;
        n = int(istr.readline())&lt;br /&gt;
        numbers = []&lt;br /&gt;
        for i in range(1, n + 1):&lt;br /&gt;
            num = int(istr.readline())&lt;br /&gt;
            numbers.append(num)&lt;br /&gt;
&lt;br /&gt;
        if not validate_input(n, numbers):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        s = sum(numbers)&lt;br /&gt;
        ostr.write(str(s))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program citeste un numar intreg n din fisierul &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; si o lista de numere intregi numbers de lungime &#039;&#039;&#039;n&#039;&#039;&#039;, apoi calculeaza suma tuturor numerelor din lista si o scrie in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Inainte de a efectua calculele, programul verifica daca datele de intrare sunt valide, folosind functia &#039;&#039;&#039;validate_input(n, numbers)&#039;&#039;&#039;. Aceasta functie returneaza False daca n este negativ sau depaseste 1000 sau daca orice element din numbers are o valoare absoluta mai mare sau egala cu 1000. Daca datele de intrare nu sunt valide, programul scrie mesajul &amp;quot;Date de intrare invalide&amp;quot; in fisierul &amp;quot;n_suma.out&amp;quot; si se opreste prin instructiunea return.&lt;br /&gt;
&lt;br /&gt;
Daca datele de intrare sunt valide, programul calculeaza suma elementelor din numbers cu functia &#039;&#039;&#039;sum()&#039;&#039;&#039; si scrie valoarea in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039; cu &#039;&#039;&#039;ostr.write()&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6296</id>
		<title>0057 - N Suma</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6296"/>
		<updated>2023-05-12T13:42:26Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/57/n-suma]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să citească &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi și să calculeze suma lor.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele linii &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;relativ.out&#039;&#039;&#039; va conține pe prima linie numărul &#039;&#039;&#039;k&#039;&#039;&#039;, reprezentând numărul termenilor din şir care sunt minime relative, iar pe a doua linie maximul sumei elementelor dintr-o secvenţă cuprinsă între două minime relative consecutive din şir, inclusiv acestea.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
* valoarea absolută a celor &#039;&#039;&#039;n&#039;&#039;&#039; numere citite va fi mai mică decât &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: &#039;&#039;n_suma.in&#039;&#039;&lt;br /&gt;
: 5&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: &#039;&#039;n_suma.out&#039;&#039;&lt;br /&gt;
: 15&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3&lt;br /&gt;
: 3&lt;br /&gt;
: 5&lt;br /&gt;
: 9&lt;br /&gt;
: 2&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 17&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0057&lt;br /&gt;
def validate_input(n, numbers):&lt;br /&gt;
    if n &amp;lt; 0 or n &amp;gt; 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    for num in numbers:&lt;br /&gt;
        if abs(num) &amp;gt;= 1000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&amp;quot;n_suma.in&amp;quot;, &amp;quot;r&amp;quot;) as istr, open(&amp;quot;n_suma.out&amp;quot;, &amp;quot;w&amp;quot;) as ostr:&lt;br /&gt;
        n = int(istr.readline())&lt;br /&gt;
        numbers = []&lt;br /&gt;
        for i in range(1, n + 1):&lt;br /&gt;
            num = int(istr.readline())&lt;br /&gt;
            numbers.append(num)&lt;br /&gt;
&lt;br /&gt;
        if not validate_input(n, numbers):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        s = sum(numbers)&lt;br /&gt;
        ostr.write(str(s))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program citeste un numar intreg n din fisierul &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; si o lista de numere intregi numbers de lungime &#039;&#039;&#039;n&#039;&#039;&#039;, apoi calculeaza suma tuturor numerelor din lista si o scrie in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Inainte de a efectua calculele, programul verifica daca datele de intrare sunt valide, folosind functia &#039;&#039;&#039;validate_input(n, numbers)&#039;&#039;&#039;. Aceasta functie returneaza False daca n este negativ sau depaseste 1000 sau daca orice element din numbers are o valoare absoluta mai mare sau egala cu 1000. Daca datele de intrare nu sunt valide, programul scrie mesajul &amp;quot;Date de intrare invalide&amp;quot; in fisierul &amp;quot;n_suma.out&amp;quot; si se opreste prin instructiunea return.&lt;br /&gt;
&lt;br /&gt;
Daca datele de intrare sunt valide, programul calculeaza suma elementelor din numbers cu functia &#039;&#039;&#039;sum()&#039;&#039;&#039; si scrie valoarea in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039; cu &#039;&#039;&#039;ostr.write()&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6295</id>
		<title>0057 - N Suma</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0057_-_N_Suma&amp;diff=6295"/>
		<updated>2023-05-12T13:41:21Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/57/n-suma]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să citească &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi și să calculeze suma lor.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele linii &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;relativ.out&#039;&#039;&#039; va conține pe prima linie numărul &#039;&#039;&#039;k&#039;&#039;&#039;, reprezentând numărul termenilor din şir care sunt minime relative, iar pe a doua linie maximul sumei elementelor dintr-o secvenţă cuprinsă între două minime relative consecutive din şir, inclusiv acestea.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
* valoarea absolută a celor &#039;&#039;&#039;n&#039;&#039;&#039; numere citite va fi mai mică decât &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
: 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 15&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3&lt;br /&gt;
: 3&lt;br /&gt;
: 5&lt;br /&gt;
: 9&lt;br /&gt;
: 2&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 17&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0057&lt;br /&gt;
def validate_input(n, numbers):&lt;br /&gt;
    if n &amp;lt; 0 or n &amp;gt; 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    for num in numbers:&lt;br /&gt;
        if abs(num) &amp;gt;= 1000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&amp;quot;n_suma.in&amp;quot;, &amp;quot;r&amp;quot;) as istr, open(&amp;quot;n_suma.out&amp;quot;, &amp;quot;w&amp;quot;) as ostr:&lt;br /&gt;
        n = int(istr.readline())&lt;br /&gt;
        numbers = []&lt;br /&gt;
        for i in range(1, n + 1):&lt;br /&gt;
            num = int(istr.readline())&lt;br /&gt;
            numbers.append(num)&lt;br /&gt;
&lt;br /&gt;
        if not validate_input(n, numbers):&lt;br /&gt;
            print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        s = sum(numbers)&lt;br /&gt;
        ostr.write(str(s))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program citeste un numar intreg n din fisierul &#039;&#039;&#039;n_suma.in&#039;&#039;&#039; si o lista de numere intregi numbers de lungime &#039;&#039;&#039;n&#039;&#039;&#039;, apoi calculeaza suma tuturor numerelor din lista si o scrie in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Inainte de a efectua calculele, programul verifica daca datele de intrare sunt valide, folosind functia &#039;&#039;&#039;validate_input(n, numbers)&#039;&#039;&#039;. Aceasta functie returneaza False daca n este negativ sau depaseste 1000 sau daca orice element din numbers are o valoare absoluta mai mare sau egala cu 1000. Daca datele de intrare nu sunt valide, programul scrie mesajul &amp;quot;Date de intrare invalide&amp;quot; in fisierul &amp;quot;n_suma.out&amp;quot; si se opreste prin instructiunea return.&lt;br /&gt;
&lt;br /&gt;
Daca datele de intrare sunt valide, programul calculeaza suma elementelor din numbers cu functia &#039;&#039;&#039;sum()&#039;&#039;&#039; si scrie valoarea in fisierul &#039;&#039;&#039;n_suma.out&#039;&#039;&#039; cu &#039;&#039;&#039;ostr.write()&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6294</id>
		<title>1892 - S Norocos</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6294"/>
		<updated>2023-05-12T13:37:48Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1892/snorocos]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Dacă numărul este norocos afișați cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau pătratul acestuia.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Daca &#039;&#039;&#039;n&#039;&#039;&#039; este norocos, programul va afișa pe ecran cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau &#039;&#039;&#039;n * n&#039;&#039;&#039;, separate prin spații și mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot; În caz contrar, programul va afișa mesajele &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039; și &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: NU ESTE NOROCOS&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1892&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if isinstance(n, int) and 1 &amp;lt;= n &amp;lt;= 1000:&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;n: &amp;quot;))&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        k = (n+1)//2&lt;br /&gt;
        while n &amp;gt; 0:&lt;br /&gt;
            print(k, end=&#039; &#039;)&lt;br /&gt;
            k += 1&lt;br /&gt;
            n -= 1&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU ESTE NOROCOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program primește un număr întreg n de la utilizator și verifică dacă numărul se încadrează între &#039;&#039;&#039;1 și 1000&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr impar, programul va imprima primele &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale impare consecutive începând cu &#039;&#039;&#039;(n+1)//2&#039;&#039;&#039;.&lt;br /&gt;
În caz contrar, programul va afișa &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039;.&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_n&#039;&#039;&#039; este folosită pentru a verifica dacă &#039;&#039;&#039;n-ul&#039;&#039;&#039; introdus este un număr întreg între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6293</id>
		<title>1892 - S Norocos</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6293"/>
		<updated>2023-05-12T13:37:36Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1892/snorocos]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Dacă numărul este norocos afișați cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau pătratul acestuia.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Daca &#039;&#039;&#039;n&#039;&#039;&#039; este norocos, programul va afișa pe ecran cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau &#039;&#039;&#039;n * n&#039;&#039;&#039;, separate prin spații și mesajul &amp;quot;Datele introduse corespund cerintelor.&amp;quot; În caz contrar, programul va afișa mesajele &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039; și &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: NU ESTE NOROCOS&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1892&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if isinstance(n, int) and 1 &amp;lt;= n &amp;lt;= 1000:&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;n: &amp;quot;))&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        k = (n+1)//2&lt;br /&gt;
        while n &amp;gt; 0:&lt;br /&gt;
            print(k, end=&#039; &#039;)&lt;br /&gt;
            k += 1&lt;br /&gt;
            n -= 1&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU ESTE NOROCOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program primește un număr întreg n de la utilizator și verifică dacă numărul se încadrează între &#039;&#039;&#039;1 și 1000&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr impar, programul va imprima primele &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale impare consecutive începând cu &#039;&#039;&#039;(n+1)//2&#039;&#039;&#039;.&lt;br /&gt;
În caz contrar, programul va afișa &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039;.&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_n&#039;&#039;&#039; este folosită pentru a verifica dacă &#039;&#039;&#039;n-ul&#039;&#039;&#039; introdus este un număr întreg între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6292</id>
		<title>1892 - S Norocos</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1892_-_S_Norocos&amp;diff=6292"/>
		<updated>2023-05-12T13:35:53Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1892/snorocos]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Dacă numărul este norocos afișați cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau pătratul acestuia.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Daca &#039;&#039;&#039;n&#039;&#039;&#039; este norocos, programul va afișa pe ecran cele &#039;&#039;&#039;n&#039;&#039;&#039; numere consecutive care adunate dau &#039;&#039;&#039;n * n&#039;&#039;&#039;, separate prin spații. In caz contrar, programul va afișa mesajul &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: NU ESTE NOROCOS&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1892&lt;br /&gt;
def validate_n(n):&lt;br /&gt;
    if isinstance(n, int) and 1 &amp;lt;= n &amp;lt;= 1000:&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;n: &amp;quot;))&lt;br /&gt;
    if not validate_n(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        k = (n+1)//2&lt;br /&gt;
        while n &amp;gt; 0:&lt;br /&gt;
            print(k, end=&#039; &#039;)&lt;br /&gt;
            k += 1&lt;br /&gt;
            n -= 1&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU ESTE NOROCOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program primește un număr întreg n de la utilizator și verifică dacă numărul se încadrează între &#039;&#039;&#039;1 și 1000&#039;&#039;&#039;.&lt;br /&gt;
Dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr impar, programul va imprima primele &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale impare consecutive începând cu &#039;&#039;&#039;(n+1)//2&#039;&#039;&#039;.&lt;br /&gt;
În caz contrar, programul va afișa &#039;&#039;&#039;NU ESTE NOROCOS&#039;&#039;&#039;.&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_n&#039;&#039;&#039; este folosită pentru a verifica dacă &#039;&#039;&#039;n-ul&#039;&#039;&#039; introdus este un număr întreg între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0860_-_Pachete1&amp;diff=6283</id>
		<title>0860 - Pachete1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0860_-_Pachete1&amp;diff=6283"/>
		<updated>2023-05-11T23:12:32Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/860/pachete1]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
e poarta unei fabrici ies în ordine &#039;&#039;&#039;n&#039;&#039;&#039; pachete fiecare având un volum cunoscut. Pachetele sunt transportate folosind camioane. Toate camioanele au aceeași capacitate &#039;&#039;&#039;C&#039;&#039;&#039;, iar procedura este următoarea: fiecare pachet scos din fabrică este imediat încărcat într-un camion, și nu este posibil ca la încărcare să fie mai mult de un camion.&lt;br /&gt;
&lt;br /&gt;
Determinați numărul minim de camioane necesar pentru a transporta cele n pachete.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n C&#039;&#039;&#039;, iar apoi n numere naturale, reprezentând volumele pachetelor.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot; Datele introduse corespund cerintelor.&amp;quot;, apoi pe un rand nou programul va afișa pe ecran numărul minim de camioane necesare M. În caz contrar, se va afișa mesajul:&amp;quot; Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* volumele pachetelor și capacitatea camioanelor vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Pachete si capacitate: 5 4&lt;br /&gt;
: Volume: 2 1 3 1 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Pachete si capacitate: 0 0&lt;br /&gt;
: Volume: 0 0 3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0860&lt;br /&gt;
def count_containers(volumes, C):&lt;br /&gt;
    volumes.sort(reverse=True)&lt;br /&gt;
    count = 0&lt;br /&gt;
    current = C&lt;br /&gt;
    for volume in volumes:&lt;br /&gt;
        if volume &amp;lt;= current:&lt;br /&gt;
            current -= volume&lt;br /&gt;
        else:&lt;br /&gt;
            count += 1&lt;br /&gt;
            current = C - volume&lt;br /&gt;
    if current &amp;lt; C:&lt;br /&gt;
        count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, C, volumes):&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 1000):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not all(1 &amp;lt;= v &amp;lt; 1000000000 for v in volumes):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= C &amp;lt; 1000000000):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, C = map(int, input(&amp;quot;Pachete si capacitate: &amp;quot;).split())&lt;br /&gt;
    volumes = list(map(int, input(&amp;quot;Volume: &amp;quot;).split()))&lt;br /&gt;
&lt;br /&gt;
    if validate_input(n, C, volumes):&lt;br /&gt;
        print(f&amp;quot;Datele introduse corespund cerintelor.\n{count_containers(volumes, C)}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program este scris în limbajul de programare Python și este format din două funcții și o secțiune principală de cod.&lt;br /&gt;
&lt;br /&gt;
Funcția `count_containers` primește două argumente: o listă de volume și o capacitate maximă `C`. Scopul funcției este de a determina numărul minim de containere necesare pentru a stoca toate volumele din listă, astfel încât niciun container să nu depășească capacitatea maximă `C`. Funcția sortează lista de volume în ordine descrescătoare și parcurge elementele în ordine, adăugând un nou container ori de câte ori nu mai poate fi adăugat un element la containerul curent.&lt;br /&gt;
&lt;br /&gt;
Funcția `validate_input` primește trei argumente: numărul de pachete, capacitatea maximă a containerelor și o listă de volume. Scopul acestei funcții este de a valida datele de intrare, verificând dacă toate valorile se încadrează în limitele specificate.&lt;br /&gt;
&lt;br /&gt;
În secțiunea principală a codului, utilizatorul este întâmpinat cu un mesaj de intrare și i se cere să introducă numărul de pachete și capacitatea maximă a containerelor. Apoi, utilizatorul este rugat să introducă volumele pachetelor. Datele de intrare sunt validate folosind funcția `validate_input`, iar dacă acestea sunt corecte, funcția `count_containers` este apelată pentru a determina numărul minim de containere necesare și acesta este afișat pe ecran.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6282</id>
		<title>0048 - Sumă Pătrate1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6282"/>
		<updated>2023-05-11T23:07:23Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma pătratelor perfecte mai mici sau egale cu &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor&amp;quot;, apoi pe un rând nou programul afișează rezultatul lui S, unde S reprezintă suma calculată. În caz contrar, se va afișa mesajul: &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 20&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 30&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0048&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def este_patrat_perfect(numar):&lt;br /&gt;
    radadica = int(math.sqrt(numar))&lt;br /&gt;
    return radadica * radadica == numar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def suma_patrate_perfecte_pana_la(n):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    for i in range(1, n+1):&lt;br /&gt;
        if este_patrat_perfect(i):&lt;br /&gt;
            suma += i&lt;br /&gt;
    return suma&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def valideaza_numar(n):&lt;br /&gt;
    if n &amp;lt;= 0:&lt;br /&gt;
        print(&amp;quot;Datele introdsue corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if n &amp;gt;= 1000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul n: &amp;quot;))&lt;br /&gt;
    valideaza_numar(n)&lt;br /&gt;
    rezultat = suma_patrate_perfecte_pana_la(n)&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.\n&amp;quot;, rezultat)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program calculează suma pătratelor perfecte mai mici sau egale cu un număr dat &amp;quot;n&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;este_patrat_perfect&amp;quot; verifică dacă un număr este pătrat perfect. În cazul în care numărul este pătrat perfect, aceasta va returna valoarea True, altfel va returna valoarea False. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; calculează suma tuturor pătratelor perfecte mai mici sau egale cu numărul dat &amp;quot;n&amp;quot;. Se utilizează o buclă &amp;quot;for&amp;quot; pentru a itera prin numerele de la 1 până la &amp;quot;n&amp;quot; și se verifică dacă fiecare număr este pătrat perfect. În caz afirmativ, numărul este adăugat la variabila &amp;quot;suma&amp;quot;. La final, funcția returnează valoarea &amp;quot;suma&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;valideaza_numar&amp;quot; verifică dacă numărul introdus este mai mare decât 0 și mai mic decât 1000. În cazul în care numărul nu se încadrează în această plajă, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
În secțiunea &amp;quot;if __name__ == &#039;__main__&#039;:&amp;quot;, programul primește un input de la utilizator pentru a afla numărul &amp;quot;n&amp;quot;. Acesta este validat apelând funcția &amp;quot;valideaza_numar&amp;quot;. Dacă numărul este valid, programul va apela funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; și va afișa rezultatul. În caz contrar, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6281</id>
		<title>0048 - Sumă Pătrate1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6281"/>
		<updated>2023-05-11T23:06:46Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma pătratelor perfecte mai mici sau egale cu &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor&amp;quot;, apoi pe un rând nou programul afișează &amp;quot;Rezultatul este S&amp;quot;, unde S reprezintă suma calculată. În caz contrar, se va afișa mesajul: &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 20&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 30&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0048&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def este_patrat_perfect(numar):&lt;br /&gt;
    radadica = int(math.sqrt(numar))&lt;br /&gt;
    return radadica * radadica == numar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def suma_patrate_perfecte_pana_la(n):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    for i in range(1, n+1):&lt;br /&gt;
        if este_patrat_perfect(i):&lt;br /&gt;
            suma += i&lt;br /&gt;
    return suma&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def valideaza_numar(n):&lt;br /&gt;
    if n &amp;lt;= 0:&lt;br /&gt;
        print(&amp;quot;Datele introdsue corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if n &amp;gt;= 1000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul n: &amp;quot;))&lt;br /&gt;
    valideaza_numar(n)&lt;br /&gt;
    rezultat = suma_patrate_perfecte_pana_la(n)&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.\n&amp;quot;, rezultat)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program calculează suma pătratelor perfecte mai mici sau egale cu un număr dat &amp;quot;n&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;este_patrat_perfect&amp;quot; verifică dacă un număr este pătrat perfect. În cazul în care numărul este pătrat perfect, aceasta va returna valoarea True, altfel va returna valoarea False. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; calculează suma tuturor pătratelor perfecte mai mici sau egale cu numărul dat &amp;quot;n&amp;quot;. Se utilizează o buclă &amp;quot;for&amp;quot; pentru a itera prin numerele de la 1 până la &amp;quot;n&amp;quot; și se verifică dacă fiecare număr este pătrat perfect. În caz afirmativ, numărul este adăugat la variabila &amp;quot;suma&amp;quot;. La final, funcția returnează valoarea &amp;quot;suma&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;valideaza_numar&amp;quot; verifică dacă numărul introdus este mai mare decât 0 și mai mic decât 1000. În cazul în care numărul nu se încadrează în această plajă, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
În secțiunea &amp;quot;if __name__ == &#039;__main__&#039;:&amp;quot;, programul primește un input de la utilizator pentru a afla numărul &amp;quot;n&amp;quot;. Acesta este validat apelând funcția &amp;quot;valideaza_numar&amp;quot;. Dacă numărul este valid, programul va apela funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; și va afișa rezultatul. În caz contrar, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6280</id>
		<title>0048 - Sumă Pătrate1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6280"/>
		<updated>2023-05-11T23:06:21Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma pătratelor perfecte mai mici sau egale cu &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor&amp;quot;, apoi pe un rând nou programul afișează &amp;quot;Rezultatul este S&amp;quot;, unde S reprezintă suma calculată. În caz contrar, se va afișa mesajul: &amp;quot;Datele de intrare nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 20&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 30&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0048&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def este_patrat_perfect(numar):&lt;br /&gt;
    radadica = int(math.sqrt(numar))&lt;br /&gt;
    return radadica * radadica == numar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def suma_patrate_perfecte_pana_la(n):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    for i in range(1, n+1):&lt;br /&gt;
        if este_patrat_perfect(i):&lt;br /&gt;
            suma += i&lt;br /&gt;
    return suma&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def valideaza_numar(n):&lt;br /&gt;
    if n &amp;lt;= 0:&lt;br /&gt;
        print(&amp;quot;Datele introdsue corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if n &amp;gt;= 1000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul n: &amp;quot;))&lt;br /&gt;
    valideaza_numar(n)&lt;br /&gt;
    rezultat = suma_patrate_perfecte_pana_la(n)&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.\n&amp;quot;, rezultat)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program calculează suma pătratelor perfecte mai mici sau egale cu un număr dat &amp;quot;n&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;este_patrat_perfect&amp;quot; verifică dacă un număr este pătrat perfect. În cazul în care numărul este pătrat perfect, aceasta va returna valoarea True, altfel va returna valoarea False. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; calculează suma tuturor pătratelor perfecte mai mici sau egale cu numărul dat &amp;quot;n&amp;quot;. Se utilizează o buclă &amp;quot;for&amp;quot; pentru a itera prin numerele de la 1 până la &amp;quot;n&amp;quot; și se verifică dacă fiecare număr este pătrat perfect. În caz afirmativ, numărul este adăugat la variabila &amp;quot;suma&amp;quot;. La final, funcția returnează valoarea &amp;quot;suma&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;valideaza_numar&amp;quot; verifică dacă numărul introdus este mai mare decât 0 și mai mic decât 1000. În cazul în care numărul nu se încadrează în această plajă, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
În secțiunea &amp;quot;if __name__ == &#039;__main__&#039;:&amp;quot;, programul primește un input de la utilizator pentru a afla numărul &amp;quot;n&amp;quot;. Acesta este validat apelând funcția &amp;quot;valideaza_numar&amp;quot;. Dacă numărul este valid, programul va apela funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; și va afișa rezultatul. În caz contrar, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6279</id>
		<title>0048 - Sumă Pătrate1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0048_-_Sum%C4%83_P%C4%83trate1&amp;diff=6279"/>
		<updated>2023-05-11T23:05:33Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma pătratelor perfecte mai mici sau egale cu &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor&amp;quot;, apoi pe un rând nou programul afișează &amp;quot;Rezultatul este S&amp;quot;, unde S reprezintă suma calculată. În caz contrar, se va afișa mesajul: &amp;quot;Datele de intrare nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 0 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 20&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este 30&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0048&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def este_patrat_perfect(numar):&lt;br /&gt;
    radadica = int(math.sqrt(numar))&lt;br /&gt;
    return radadica * radadica == numar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def suma_patrate_perfecte_pana_la(n):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    for i in range(1, n+1):&lt;br /&gt;
        if este_patrat_perfect(i):&lt;br /&gt;
            suma += i&lt;br /&gt;
    return suma&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def valideaza_numar(n):&lt;br /&gt;
    if n &amp;lt;= 0:&lt;br /&gt;
        print(&amp;quot;Datele introdsue corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if n &amp;gt;= 1000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul n: &amp;quot;))&lt;br /&gt;
    valideaza_numar(n)&lt;br /&gt;
    rezultat = suma_patrate_perfecte_pana_la(n)&lt;br /&gt;
    print(&amp;quot;Datele introduse corespund cerintelor.\n&amp;quot;, rezultat)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program calculează suma pătratelor perfecte mai mici sau egale cu un număr dat &amp;quot;n&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;este_patrat_perfect&amp;quot; verifică dacă un număr este pătrat perfect. În cazul în care numărul este pătrat perfect, aceasta va returna valoarea True, altfel va returna valoarea False. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; calculează suma tuturor pătratelor perfecte mai mici sau egale cu numărul dat &amp;quot;n&amp;quot;. Se utilizează o buclă &amp;quot;for&amp;quot; pentru a itera prin numerele de la 1 până la &amp;quot;n&amp;quot; și se verifică dacă fiecare număr este pătrat perfect. În caz afirmativ, numărul este adăugat la variabila &amp;quot;suma&amp;quot;. La final, funcția returnează valoarea &amp;quot;suma&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;valideaza_numar&amp;quot; verifică dacă numărul introdus este mai mare decât 0 și mai mic decât 1000. În cazul în care numărul nu se încadrează în această plajă, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
În secțiunea &amp;quot;if __name__ == &#039;__main__&#039;:&amp;quot;, programul primește un input de la utilizator pentru a afla numărul &amp;quot;n&amp;quot;. Acesta este validat apelând funcția &amp;quot;valideaza_numar&amp;quot;. Dacă numărul este valid, programul va apela funcția &amp;quot;suma_patrate_perfecte_pana_la&amp;quot; și va afișa rezultatul. În caz contrar, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției &amp;quot;exit()&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3643_-_Regula&amp;diff=6278</id>
		<title>3643 - Regula</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3643_-_Regula&amp;diff=6278"/>
		<updated>2023-05-11T23:04:16Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3643/regula]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Dându-se o poziţie din şir se cere determinarea valorii care se află pe acea poziţie.&lt;br /&gt;
&lt;br /&gt;
Dându-se o valoare, să se determine cea mai mică poziţie din şir pe care aceasta se află.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
De la tastatură se citesc două numere C şi V. Dacă avem C = 1, trebuie determinată valoarea de pe poziția V din șir. Dacă avem C = 2 se cere să determinăm cea mai mică poziție din șir unde avem valoarea V.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor.&amp;quot;, apoi pe un rând nou afișează  pe ecran se va afișa un singur număr natural corespunzător rezultatului obținut pentru rezolvarea fiecărei. În caz contrar, se va afișa pe ecran: &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;C&#039;&#039;&#039; &amp;amp;les; 2&lt;br /&gt;
* Pentru 25% din punctaj, C = 1 și V &amp;amp;les; 100.000&lt;br /&gt;
* Pentru 25% din punctaj, C = 1 și 100.000 &amp;amp;lt; V &amp;amp;les; 1.000.000.000&lt;br /&gt;
* Pentru 50% din punctaj, C = 2 și 1 &amp;amp;lt; V &amp;amp;les; 35.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numar: 0&lt;br /&gt;
: Introduceti alt numar: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numar: 1&lt;br /&gt;
: Introduceti alt numar: 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3643&lt;br /&gt;
def is_valid(c, v):&lt;br /&gt;
    if c == 1:&lt;br /&gt;
        if v &amp;lt;= 100000:&lt;br /&gt;
            return True&lt;br /&gt;
        elif 100000 &amp;lt; v &amp;lt;= 1000000000:&lt;br /&gt;
            return True&lt;br /&gt;
    elif c == 2:&lt;br /&gt;
        if 1 &amp;lt; v &amp;lt;= 35000:&lt;br /&gt;
            return True&lt;br /&gt;
&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_s(c, v):&lt;br /&gt;
    if not is_valid(c, v):&lt;br /&gt;
        raise ValueError(&amp;quot;Datele introduse nu corespund cerintelor..&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    s = 0&lt;br /&gt;
&lt;br /&gt;
    if c == 1:&lt;br /&gt;
        g = 1&lt;br /&gt;
        while True:&lt;br /&gt;
            s += g + (g + 1) // 2&lt;br /&gt;
&lt;br /&gt;
            if s &amp;gt;= v:&lt;br /&gt;
                break&lt;br /&gt;
&lt;br /&gt;
            g += 1&lt;br /&gt;
&lt;br /&gt;
        s -= g + (g + 1) // 2&lt;br /&gt;
        v -= s&lt;br /&gt;
&lt;br /&gt;
        if v &amp;lt;= g:&lt;br /&gt;
            return v&lt;br /&gt;
        else:&lt;br /&gt;
            v -= g&lt;br /&gt;
            return 2 * v - 1&lt;br /&gt;
    else:&lt;br /&gt;
        for i in range(1, v):&lt;br /&gt;
            s += i + (i + 1) // 2&lt;br /&gt;
&lt;br /&gt;
        return s + v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    c = int(input(&amp;quot;Introduceti numar: &amp;quot;))&lt;br /&gt;
    v = int(input(&amp;quot;Introduceti alt numar: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if not is_valid(c, v):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        result = calculate_s(c, v)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
        print(result)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program este o implementare a unui algoritm matematic care calculează o anumită sumă, în funcție de valorile a două variabile de intrare: c și v. Funcția &#039;&#039;&#039;is_valid&#039;&#039;&#039; este utilizată pentru a verifica dacă valorile introduse pentru c și v corespund cerințelor impuse de algoritmul matematic. Dacă valorile introduse nu corespund, programul va afișa un mesaj de eroare.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;calculate_s&#039;&#039;&#039; este funcția principală care calculează suma în funcție de valorile de intrare c și v. Dacă valorile nu sunt valide, aceasta va arunca o excepție. Altfel, funcția va utiliza o serie de instrucțiuni if/else și bucle while/for pentru a calcula suma într-un mod specific, în funcție de valorile lui c și v.&lt;br /&gt;
&lt;br /&gt;
În secțiunea &#039;&#039;&#039;main&#039;&#039;&#039;, utilizatorul este invitat să introducă valorile pentru c și v. Dacă valorile introduse nu sunt valide, programul va afișa un mesaj de eroare. Dacă valorile sunt valide, programul va afișa un mesaj de confirmare și va calcula suma utilizând funcția &#039;&#039;&#039;calculate_s&#039;&#039;&#039;. Suma rezultată va fi afișată la sfârșit.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3643_-_Regula&amp;diff=6277</id>
		<title>3643 - Regula</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3643_-_Regula&amp;diff=6277"/>
		<updated>2023-05-11T23:04:04Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3643/regula]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Dându-se o poziţie din şir se cere determinarea valorii care se află pe acea poziţie.&lt;br /&gt;
&lt;br /&gt;
Dându-se o valoare, să se determine cea mai mică poziţie din şir pe care aceasta se află.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
De la tastatură se citesc două numere C şi V. Dacă avem C = 1, trebuie determinată valoarea de pe poziția V din șir. Dacă avem C = 2 se cere să determinăm cea mai mică poziție din șir unde avem valoarea V.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele introduse corespund cerintelor.&amp;quot;, apoi pe un rând nou afișează  pe ecran se va afișa un singur număr natural corespunzător rezultatului obținut pentru rezolvarea fiecărei. În caz contrar, se va afișa pe ecran: &amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;C&#039;&#039;&#039; &amp;amp;les; 2&lt;br /&gt;
* Pentru 25% din punctaj, C = 1 și V &amp;amp;les; 100.000&lt;br /&gt;
* Pentru 25% din punctaj, C = 1 și 100.000 &amp;amp;lt; V &amp;amp;les; 1.000.000.000&lt;br /&gt;
* Pentru 50% din punctaj, C = 2 și 1 &amp;amp;lt; V &amp;amp;les; 35.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numar: 0&lt;br /&gt;
: Introduceti alt numar: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numar: 1&lt;br /&gt;
: Introduceti alt numar: 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund cerintelor.&lt;br /&gt;
: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3643&lt;br /&gt;
def is_valid(c, v):&lt;br /&gt;
    if c == 1:&lt;br /&gt;
        if v &amp;lt;= 100000:&lt;br /&gt;
            return True&lt;br /&gt;
        elif 100000 &amp;lt; v &amp;lt;= 1000000000:&lt;br /&gt;
            return True&lt;br /&gt;
    elif c == 2:&lt;br /&gt;
        if 1 &amp;lt; v &amp;lt;= 35000:&lt;br /&gt;
            return True&lt;br /&gt;
&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_s(c, v):&lt;br /&gt;
    if not is_valid(c, v):&lt;br /&gt;
        raise ValueError(&amp;quot;Datele introduse nu corespund cerintelor..&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    s = 0&lt;br /&gt;
&lt;br /&gt;
    if c == 1:&lt;br /&gt;
        g = 1&lt;br /&gt;
        while True:&lt;br /&gt;
            s += g + (g + 1) // 2&lt;br /&gt;
&lt;br /&gt;
            if s &amp;gt;= v:&lt;br /&gt;
                break&lt;br /&gt;
&lt;br /&gt;
            g += 1&lt;br /&gt;
&lt;br /&gt;
        s -= g + (g + 1) // 2&lt;br /&gt;
        v -= s&lt;br /&gt;
&lt;br /&gt;
        if v &amp;lt;= g:&lt;br /&gt;
            return v&lt;br /&gt;
        else:&lt;br /&gt;
            v -= g&lt;br /&gt;
            return 2 * v - 1&lt;br /&gt;
    else:&lt;br /&gt;
        for i in range(1, v):&lt;br /&gt;
            s += i + (i + 1) // 2&lt;br /&gt;
&lt;br /&gt;
        return s + v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    c = int(input(&amp;quot;Introduceti numar: &amp;quot;))&lt;br /&gt;
    v = int(input(&amp;quot;Introduceti alt numar: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if not is_valid(c, v):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        result = calculate_s(c, v)&lt;br /&gt;
        print(&amp;quot;Datele introduse corespund cerintelor.&amp;quot;)&lt;br /&gt;
        print(result)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program este o implementare a unui algoritm matematic care calculează o anumită sumă, în funcție de valorile a două variabile de intrare: c și v. Funcția &#039;&#039;&#039;is_valid&#039;&#039;&#039; este utilizată pentru a verifica dacă valorile introduse pentru c și v corespund cerințelor impuse de algoritmul matematic. Dacă valorile introduse nu corespund, programul va afișa un mesaj de eroare.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;calculate_s&#039;&#039;&#039; este funcția principală care calculează suma în funcție de valorile de intrare c și v. Dacă valorile nu sunt valide, aceasta va arunca o excepție. Altfel, funcția va utiliza o serie de instrucțiuni if/else și bucle while/for pentru a calcula suma într-un mod specific, în funcție de valorile lui c și v.&lt;br /&gt;
&lt;br /&gt;
În secțiunea &#039;&#039;&#039;main&#039;&#039;&#039;, utilizatorul este invitat să introducă valorile pentru c și v. Dacă valorile introduse nu sunt valide, programul va afișa un mesaj de eroare. Dacă valorile sunt valide, programul va afișa un mesaj de confirmare și va calcula suma utilizând funcția &#039;&#039;&#039;calculate_s&#039;&#039;&#039;. Suma rezultată va fi afișată la sfârșit.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3977_-_Expo_N&amp;diff=6276</id>
		<title>3977 - Expo N</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3977_-_Expo_N&amp;diff=6276"/>
		<updated>2023-05-11T23:03:05Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3977/expon]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Să se determine exponentul maxim e cu proprietatea că &#039;&#039;&#039;2&amp;lt;sup&amp;gt;e&#039;&#039;&#039; ≤ &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot; Datele introduse corespund cerintelor&amp;quot;, apoi pe un rând nou va afișa valoarea exponentului maxim. În caz contrar, se va afișa mesajul:&amp;quot; Datele introduse nu corespund cerintelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți numărul n: 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți numărul n: 20000000000000000000000000000&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3977&lt;br /&gt;
def validare(n):&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 2000000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def exponent_maxim(n):&lt;br /&gt;
    e = 0&lt;br /&gt;
    while 2**e &amp;lt;= n:&lt;br /&gt;
        e += 1&lt;br /&gt;
    return e-1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul n: &amp;quot;))&lt;br /&gt;
    if validare(n) is True:&lt;br /&gt;
        print(f&amp;quot;Datele introduse corespund cerintelor\n{exponent_maxim(n)}&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program primește un număr întreg de la utilizator și verifică dacă se încadrează între 1 și 2 miliarde. Dacă numărul este valid, programul determină cel mai mare exponent al lui 2 care nu depășește numărul dat. Aceasta se realizează prin creșterea exponentului e începând cu 0 până când 2^e depășește numărul dat și apoi returnând e-1 (deoarece e a fost deja incrementat cu 1 în ultima iterație în care 2^e depășește numărul dat).&lt;br /&gt;
&lt;br /&gt;
Dacă numărul dat nu este valid, programul afișează un mesaj corespunzător.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3622_-_Perechi_Pare&amp;diff=6275</id>
		<title>3622 - Perechi Pare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3622_-_Perechi_Pare&amp;diff=6275"/>
		<updated>2023-05-11T23:01:43Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3622/perechipare]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un interval &#039;&#039;&#039;[l,r]&#039;&#039;&#039;. Aflaţi câte perechi de numere pare se pot forma alegând două numere din interval.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;l&#039;&#039;&#039; şi &#039;&#039;&#039;r&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
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 &amp;quot;Datele introduse corespund cerințelor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
În cazul în care datele de intrare nu respectă restricțiile impuse programul va afișa pe ecran mesajul &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și nu va continua cu restul execuției programului.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;l&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;r&#039;&#039;&#039; &amp;amp;les; 1.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introdu l: 5&lt;br /&gt;
: Introdu r: 10&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 9&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introdu l: 5&lt;br /&gt;
: Introdu r: 1000000000000000000000000000000&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerintelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3622&lt;br /&gt;
def validate_input(l, r):&lt;br /&gt;
    if not (1 &amp;lt;= l &amp;lt;= r &amp;lt;= 1000000):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numarare_numere_pare(l, r):&lt;br /&gt;
    validate_input(l, r)&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for i in range(l, r+1):&lt;br /&gt;
        if i % 2 == 0:&lt;br /&gt;
            contor += 1&lt;br /&gt;
    return contor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    l = int(input(&amp;quot;Introdu l: &amp;quot;))&lt;br /&gt;
    r = int(input(&amp;quot;Introdu r: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    contor = numarare_numere_pare(l, r)&lt;br /&gt;
    print(f&amp;quot;Datele introduse corespund cerintelor.\n{contor * contor}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program numara numerele pare dintre doua numere l si r date de utilizator si afiseaza patratul numarului de numere pare gasite. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3664_-_Cif_Par_Cif_Imp&amp;diff=6274</id>
		<title>3664 - Cif Par Cif Imp</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3664_-_Cif_Par_Cif_Imp&amp;diff=6274"/>
		<updated>2023-05-11T22:59:36Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3664/cifparcifimp]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Determinaţi câte cifre pare şi câte cifre impare se află în total în cele &#039;&#039;&#039;n&#039;&#039;&#039; numere.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;, apoi pe un rând nou va afișa numărul de cifre pare și impare separate printr-un spațiu. În caz contrar, se va afișa mesajul:&amp;quot; Datele de intrare nu corespund restrictiilor impuse.&lt;br /&gt;
&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 10&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți numărul de numere: 3&lt;br /&gt;
: Introduceți numărul 1: 11&lt;br /&gt;
: Introduceți numărul 2: 30&lt;br /&gt;
: Introduceți numărul 3: 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund cerintelor.&lt;br /&gt;
: 1 4&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți numărul de numere: 0&lt;br /&gt;
; Iesire&lt;br /&gt;
: Datele de intrare nu corespund cerintelor.&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3664&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 10:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def count_parity_digits(n):&lt;br /&gt;
    pare = 0&lt;br /&gt;
    impare = 0&lt;br /&gt;
    while n &amp;gt; 0:&lt;br /&gt;
        cifra = n % 10&lt;br /&gt;
        if cifra % 2 == 0:&lt;br /&gt;
            pare += 1&lt;br /&gt;
        else:&lt;br /&gt;
            impare += 1&lt;br /&gt;
        n //= 10&lt;br /&gt;
    return pare, impare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numere = int(input(&amp;quot;Introduceți numărul de numere: &amp;quot;))&lt;br /&gt;
    if not validate_input(numere):&lt;br /&gt;
        exit()&lt;br /&gt;
    pare_total = 0&lt;br /&gt;
    impare_total = 0&lt;br /&gt;
    for i in range(numere):&lt;br /&gt;
        n = int(input(f&amp;quot;Introduceți numărul {i + 1}: &amp;quot;))&lt;br /&gt;
        if n &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele de intrare nu corespund cerintelor&amp;quot;)&lt;br /&gt;
            continue&lt;br /&gt;
        pare, impare = count_parity_digits(n)&lt;br /&gt;
        pare_total += pare&lt;br /&gt;
        impare_total += impare&lt;br /&gt;
&lt;br /&gt;
    print(f&amp;quot;Datele de intrare corespund cerintelor\n{pare_total} {impare_total}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program este o soluție la o problemă care prelucrează un număr dat de numere și calculează numărul total de cifre pare și impare în toate numerele introduse. &lt;br /&gt;
&lt;br /&gt;
Mai întâi, programul folosește funcția `validate_input(n)` pentru a verifica dacă numărul de numere introduse este între 1 și 10. Dacă nu, se afișează un mesaj de eroare și se returnează valoarea `False`. &lt;br /&gt;
&lt;br /&gt;
Apoi, funcția `count_parity_digits(n)` primește un număr `n` și numără cifrele pare și impare în acel număr, utilizând o buclă `while` și operatorul modulo `%`. Rezultatul este returnat sub formă de tuplu. &lt;br /&gt;
&lt;br /&gt;
În blocul principal, utilizatorul este întâi întrebat să introducă numărul de numere pe care le va introduce. Dacă numărul nu este validat cu ajutorul funcției `validate_input()`, programul se încheie. În caz contrar, programul trece printr-o buclă `for` și cere utilizatorului să introducă fiecare număr. Dacă numărul introdus este mai mare sau egal cu 1 miliard, se afișează un mesaj de eroare și se trece la următorul număr. Altfel, se apelează funcția `count_parity_digits()` pentru a număra cifrele pare și impare în numărul introdus și se adaugă la numerele totale de cifre pare și impare. &lt;br /&gt;
&lt;br /&gt;
La sfârșit, programul afișează un mesaj de confirmare și numărul total de cifre pare și impare numărate.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3664_-_Cif_Par_Cif_Imp&amp;diff=6273</id>
		<title>3664 - Cif Par Cif Imp</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3664_-_Cif_Par_Cif_Imp&amp;diff=6273"/>
		<updated>2023-05-11T22:59:19Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3664/cifparcifimp]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Determinaţi câte cifre pare şi câte cifre impare se află în total în cele &#039;&#039;&#039;n&#039;&#039;&#039; numere.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;, apoi pe un rând nou va afișa numărul de cifre pare și impare separate printr-un spațiu. În caz contrar, se va afișa mesajul:&amp;quot; Datele de intrare nu corespund restrictiilor impuse.&lt;br /&gt;
&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 10&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți numărul de numere: 3&lt;br /&gt;
: Introduceți numărul 1: 11&lt;br /&gt;
: Introduceți numărul 2: 30&lt;br /&gt;
: Introduceți numărul 3: 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund cerintelor.&lt;br /&gt;
: 1 4&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceți numărul de numere: 0&lt;br /&gt;
; Iesire&lt;br /&gt;
: Numărul de numere trebuie să fie între 1 și 10.&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3664&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 10:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def count_parity_digits(n):&lt;br /&gt;
    pare = 0&lt;br /&gt;
    impare = 0&lt;br /&gt;
    while n &amp;gt; 0:&lt;br /&gt;
        cifra = n % 10&lt;br /&gt;
        if cifra % 2 == 0:&lt;br /&gt;
            pare += 1&lt;br /&gt;
        else:&lt;br /&gt;
            impare += 1&lt;br /&gt;
        n //= 10&lt;br /&gt;
    return pare, impare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numere = int(input(&amp;quot;Introduceți numărul de numere: &amp;quot;))&lt;br /&gt;
    if not validate_input(numere):&lt;br /&gt;
        exit()&lt;br /&gt;
    pare_total = 0&lt;br /&gt;
    impare_total = 0&lt;br /&gt;
    for i in range(numere):&lt;br /&gt;
        n = int(input(f&amp;quot;Introduceți numărul {i + 1}: &amp;quot;))&lt;br /&gt;
        if n &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele de intrare nu corespund cerintelor&amp;quot;)&lt;br /&gt;
            continue&lt;br /&gt;
        pare, impare = count_parity_digits(n)&lt;br /&gt;
        pare_total += pare&lt;br /&gt;
        impare_total += impare&lt;br /&gt;
&lt;br /&gt;
    print(f&amp;quot;Datele de intrare corespund cerintelor\n{pare_total} {impare_total}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie rezolvare==&lt;br /&gt;
Acest program este o soluție la o problemă care prelucrează un număr dat de numere și calculează numărul total de cifre pare și impare în toate numerele introduse. &lt;br /&gt;
&lt;br /&gt;
Mai întâi, programul folosește funcția `validate_input(n)` pentru a verifica dacă numărul de numere introduse este între 1 și 10. Dacă nu, se afișează un mesaj de eroare și se returnează valoarea `False`. &lt;br /&gt;
&lt;br /&gt;
Apoi, funcția `count_parity_digits(n)` primește un număr `n` și numără cifrele pare și impare în acel număr, utilizând o buclă `while` și operatorul modulo `%`. Rezultatul este returnat sub formă de tuplu. &lt;br /&gt;
&lt;br /&gt;
În blocul principal, utilizatorul este întâi întrebat să introducă numărul de numere pe care le va introduce. Dacă numărul nu este validat cu ajutorul funcției `validate_input()`, programul se încheie. În caz contrar, programul trece printr-o buclă `for` și cere utilizatorului să introducă fiecare număr. Dacă numărul introdus este mai mare sau egal cu 1 miliard, se afișează un mesaj de eroare și se trece la următorul număr. Altfel, se apelează funcția `count_parity_digits()` pentru a număra cifrele pare și impare în numărul introdus și se adaugă la numerele totale de cifre pare și impare. &lt;br /&gt;
&lt;br /&gt;
La sfârșit, programul afișează un mesaj de confirmare și numărul total de cifre pare și impare numărate.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6272</id>
		<title>0047 - Sumă Pătrate</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6272"/>
		<updated>2023-05-11T22:57:43Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/47/sumapatrate]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma primelor &#039;&#039;&#039;n&#039;&#039;&#039; pătrate perfecte nenule.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte. Datele de ieșire pentru acest program sunt:&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare nu corespund cerințelor (numărul introdus este mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa &amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare sunt corecte, programul va calcula suma primelor n numere întregi care sunt pătrate perfecte și va afișa rezultatul cu ajutorul frazei &amp;quot;Datele introduse corespund cerintelor&amp;quot; urmată de valoarea calculată.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerințelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 91&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor. &lt;br /&gt;
: 140&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0047&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if n &amp;lt;= 0 or n &amp;gt;= 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def compute_sum(n):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    count = 0&lt;br /&gt;
    num = 1&lt;br /&gt;
    while count &amp;lt; n:&lt;br /&gt;
        if math.sqrt(num) % 1 == 0:  # Verifică dacă numărul este pătrat perfect&lt;br /&gt;
            sum += num&lt;br /&gt;
            count += 1&lt;br /&gt;
        num += 1&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    while not validate_input(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    sum = compute_sum(n)&lt;br /&gt;
    print(f&amp;quot;Datele introduse corespund cerintelor.\n{sum}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte, unde n este introdus de utilizator.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039; verifică dacă n este un număr întreg pozitiv mai mic decât 1000, returnând False dacă nu este îndeplinită această condiție și True în caz contrar.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;compute_sum(n)&#039;&#039;&#039; calculează suma primelor n numere întregi care sunt pătrate perfecte prin utilizarea unui loop while care se execută până când s-au găsit n numere întregi pătrate perfecte. În interiorul loop-ului, fiecare număr întreg este verificat pentru a vedea dacă este pătrat perfect. Dacă este, numărul este adăugat la suma totală și numărul de numere pătrate perfecte găsite până în prezent este incrementat.&lt;br /&gt;
&lt;br /&gt;
În funcția principală &#039;&#039;&#039;(if __name__ == &#039;__main__&#039;:)&#039;&#039;&#039;, utilizatorul este întâi rugat să introducă un număr întreg pozitiv, n, și acesta este validat cu ajutorul funcției &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039;. Dacă numărul nu este valid, utilizatorul este rugat să introducă un alt număr până când se introduce un număr valid. Dacă numărul este valid, &#039;&#039;&#039;funcția compute_sum(n)&#039;&#039;&#039; este apelată și afișează suma primelor n numere întregi care sunt pătrate perfecte.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6271</id>
		<title>0047 - Sumă Pătrate</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6271"/>
		<updated>2023-05-11T22:57:28Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/47/sumapatrate]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma primelor &#039;&#039;&#039;n&#039;&#039;&#039; pătrate perfecte nenule.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte. Datele de ieșire pentru acest program sunt:&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare nu corespund cerințelor (numărul introdus este mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa &amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare sunt corecte, programul va calcula suma primelor n numere întregi care sunt pătrate perfecte și va afișa rezultatul cu ajutorul frazei &amp;quot;Datele introduse corespund cerintelor&amp;quot; urmată de valoarea calculată.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerințelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 91&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este 140&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0047&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if n &amp;lt;= 0 or n &amp;gt;= 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def compute_sum(n):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    count = 0&lt;br /&gt;
    num = 1&lt;br /&gt;
    while count &amp;lt; n:&lt;br /&gt;
        if math.sqrt(num) % 1 == 0:  # Verifică dacă numărul este pătrat perfect&lt;br /&gt;
            sum += num&lt;br /&gt;
            count += 1&lt;br /&gt;
        num += 1&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    while not validate_input(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    sum = compute_sum(n)&lt;br /&gt;
    print(f&amp;quot;Datele introduse corespund cerintelor.\n{sum}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte, unde n este introdus de utilizator.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039; verifică dacă n este un număr întreg pozitiv mai mic decât 1000, returnând False dacă nu este îndeplinită această condiție și True în caz contrar.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;compute_sum(n)&#039;&#039;&#039; calculează suma primelor n numere întregi care sunt pătrate perfecte prin utilizarea unui loop while care se execută până când s-au găsit n numere întregi pătrate perfecte. În interiorul loop-ului, fiecare număr întreg este verificat pentru a vedea dacă este pătrat perfect. Dacă este, numărul este adăugat la suma totală și numărul de numere pătrate perfecte găsite până în prezent este incrementat.&lt;br /&gt;
&lt;br /&gt;
În funcția principală &#039;&#039;&#039;(if __name__ == &#039;__main__&#039;:)&#039;&#039;&#039;, utilizatorul este întâi rugat să introducă un număr întreg pozitiv, n, și acesta este validat cu ajutorul funcției &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039;. Dacă numărul nu este valid, utilizatorul este rugat să introducă un alt număr până când se introduce un număr valid. Dacă numărul este valid, &#039;&#039;&#039;funcția compute_sum(n)&#039;&#039;&#039; este apelată și afișează suma primelor n numere întregi care sunt pătrate perfecte.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6270</id>
		<title>0047 - Sumă Pătrate</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6270"/>
		<updated>2023-05-11T22:57:19Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/47/sumapatrate]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma primelor &#039;&#039;&#039;n&#039;&#039;&#039; pătrate perfecte nenule.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte. Datele de ieșire pentru acest program sunt:&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare nu corespund cerințelor (numărul introdus este mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa &amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare sunt corecte, programul va calcula suma primelor n numere întregi care sunt pătrate perfecte și va afișa rezultatul cu ajutorul frazei &amp;quot;Datele introduse corespund cerintelor.&amp;quot; urmată de valoarea calculată.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerințelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 91&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este 140&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0047&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if n &amp;lt;= 0 or n &amp;gt;= 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def compute_sum(n):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    count = 0&lt;br /&gt;
    num = 1&lt;br /&gt;
    while count &amp;lt; n:&lt;br /&gt;
        if math.sqrt(num) % 1 == 0:  # Verifică dacă numărul este pătrat perfect&lt;br /&gt;
            sum += num&lt;br /&gt;
            count += 1&lt;br /&gt;
        num += 1&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    while not validate_input(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    sum = compute_sum(n)&lt;br /&gt;
    print(f&amp;quot;Datele introduse corespund cerintelor.\n{sum}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte, unde n este introdus de utilizator.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039; verifică dacă n este un număr întreg pozitiv mai mic decât 1000, returnând False dacă nu este îndeplinită această condiție și True în caz contrar.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;compute_sum(n)&#039;&#039;&#039; calculează suma primelor n numere întregi care sunt pătrate perfecte prin utilizarea unui loop while care se execută până când s-au găsit n numere întregi pătrate perfecte. În interiorul loop-ului, fiecare număr întreg este verificat pentru a vedea dacă este pătrat perfect. Dacă este, numărul este adăugat la suma totală și numărul de numere pătrate perfecte găsite până în prezent este incrementat.&lt;br /&gt;
&lt;br /&gt;
În funcția principală &#039;&#039;&#039;(if __name__ == &#039;__main__&#039;:)&#039;&#039;&#039;, utilizatorul este întâi rugat să introducă un număr întreg pozitiv, n, și acesta este validat cu ajutorul funcției &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039;. Dacă numărul nu este valid, utilizatorul este rugat să introducă un alt număr până când se introduce un număr valid. Dacă numărul este valid, &#039;&#039;&#039;funcția compute_sum(n)&#039;&#039;&#039; este apelată și afișează suma primelor n numere întregi care sunt pătrate perfecte.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6269</id>
		<title>0047 - Sumă Pătrate</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6269"/>
		<updated>2023-05-11T22:57:05Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/47/sumapatrate]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma primelor &#039;&#039;&#039;n&#039;&#039;&#039; pătrate perfecte nenule.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte. Datele de ieșire pentru acest program sunt:&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare nu corespund cerințelor (numărul introdus este mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa &amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare sunt corecte, programul va calcula suma primelor n numere întregi care sunt pătrate perfecte și va afișa rezultatul cu ajutorul frazei &amp;quot;Rezultatul este&amp;quot; urmată de valoarea calculată.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerințelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse corespund cerintelor.&lt;br /&gt;
: 91&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este 140&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0047&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if n &amp;lt;= 0 or n &amp;gt;= 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def compute_sum(n):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    count = 0&lt;br /&gt;
    num = 1&lt;br /&gt;
    while count &amp;lt; n:&lt;br /&gt;
        if math.sqrt(num) % 1 == 0:  # Verifică dacă numărul este pătrat perfect&lt;br /&gt;
            sum += num&lt;br /&gt;
            count += 1&lt;br /&gt;
        num += 1&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    while not validate_input(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    sum = compute_sum(n)&lt;br /&gt;
    print(f&amp;quot;Datele introduse corespund cerintelor.\n{sum}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte, unde n este introdus de utilizator.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039; verifică dacă n este un număr întreg pozitiv mai mic decât 1000, returnând False dacă nu este îndeplinită această condiție și True în caz contrar.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;compute_sum(n)&#039;&#039;&#039; calculează suma primelor n numere întregi care sunt pătrate perfecte prin utilizarea unui loop while care se execută până când s-au găsit n numere întregi pătrate perfecte. În interiorul loop-ului, fiecare număr întreg este verificat pentru a vedea dacă este pătrat perfect. Dacă este, numărul este adăugat la suma totală și numărul de numere pătrate perfecte găsite până în prezent este incrementat.&lt;br /&gt;
&lt;br /&gt;
În funcția principală &#039;&#039;&#039;(if __name__ == &#039;__main__&#039;:)&#039;&#039;&#039;, utilizatorul este întâi rugat să introducă un număr întreg pozitiv, n, și acesta este validat cu ajutorul funcției &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039;. Dacă numărul nu este valid, utilizatorul este rugat să introducă un alt număr până când se introduce un număr valid. Dacă numărul este valid, &#039;&#039;&#039;funcția compute_sum(n)&#039;&#039;&#039; este apelată și afișează suma primelor n numere întregi care sunt pătrate perfecte.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6268</id>
		<title>0047 - Sumă Pătrate</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0047_-_Sum%C4%83_P%C4%83trate&amp;diff=6268"/>
		<updated>2023-05-11T22:56:31Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/47/sumapatrate]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește numărul natural &#039;&#039;&#039;n&#039;&#039;&#039; și determină suma primelor &#039;&#039;&#039;n&#039;&#039;&#039; pătrate perfecte nenule.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte. Datele de ieșire pentru acest program sunt:&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare nu corespund cerințelor (numărul introdus este mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa &amp;quot;Datele introduse nu corespund cerințelor.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Dacă datele de intrare sunt corecte, programul va calcula suma primelor n numere întregi care sunt pătrate perfecte și va afișa rezultatul cu ajutorul frazei &amp;quot;Rezultatul este&amp;quot; urmată de valoarea calculată.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;lt; 1000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse nu corespund cerințelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este 91&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este 140&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0047&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_input(n):&lt;br /&gt;
    if n &amp;lt;= 0 or n &amp;gt;= 1000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def compute_sum(n):&lt;br /&gt;
    sum = 0&lt;br /&gt;
    count = 0&lt;br /&gt;
    num = 1&lt;br /&gt;
    while count &amp;lt; n:&lt;br /&gt;
        if math.sqrt(num) % 1 == 0:  # Verifică dacă numărul este pătrat perfect&lt;br /&gt;
            sum += num&lt;br /&gt;
            count += 1&lt;br /&gt;
        num += 1&lt;br /&gt;
    return sum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    while not validate_input(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu corespund cerintelor.&amp;quot;)&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    sum = compute_sum(n)&lt;br /&gt;
    print(f&amp;quot;Datele introduse corespund cerintelor.\n{sum}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte, unde n este introdus de utilizator.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039; verifică dacă n este un număr întreg pozitiv mai mic decât 1000, returnând False dacă nu este îndeplinită această condiție și True în caz contrar.&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;compute_sum(n)&#039;&#039;&#039; calculează suma primelor n numere întregi care sunt pătrate perfecte prin utilizarea unui loop while care se execută până când s-au găsit n numere întregi pătrate perfecte. În interiorul loop-ului, fiecare număr întreg este verificat pentru a vedea dacă este pătrat perfect. Dacă este, numărul este adăugat la suma totală și numărul de numere pătrate perfecte găsite până în prezent este incrementat.&lt;br /&gt;
&lt;br /&gt;
În funcția principală &#039;&#039;&#039;(if __name__ == &#039;__main__&#039;:)&#039;&#039;&#039;, utilizatorul este întâi rugat să introducă un număr întreg pozitiv, n, și acesta este validat cu ajutorul funcției &#039;&#039;&#039;validate_input(n)&#039;&#039;&#039;. Dacă numărul nu este valid, utilizatorul este rugat să introducă un alt număr până când se introduce un număr valid. Dacă numărul este valid, &#039;&#039;&#039;funcția compute_sum(n)&#039;&#039;&#039; este apelată și afișează suma primelor n numere întregi care sunt pătrate perfecte.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1212_-_Sum%C4%83_P%C4%83trare&amp;diff=6267</id>
		<title>1212 - Sumă Pătrare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1212_-_Sum%C4%83_P%C4%83trare&amp;diff=6267"/>
		<updated>2023-05-11T22:53:27Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1212/sumapatrate]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Fiind dat &#039;&#039;&#039;N&#039;&#039;&#039;, un număr natural nenul, calculați suma &#039;&#039;&#039;S=1^2 + 2^2 + 3^2 + ... + n^2&#039;&#039;&#039;, modulo &#039;&#039;&#039;10.234.573&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;N&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;, apoi pe un rând nou va afișa valoarea &#039;&#039;&#039;S&#039;&#039;&#039;. În caz contrar, se va afișa mesajul: &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;N&#039;&#039;&#039; &amp;amp;les; 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
: 30&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1212&lt;br /&gt;
def suma_patrate_modulo(n):&lt;br /&gt;
    numarator = (n * (n + 1) % 10234573) * ((2 * n + 1) % 10234573)&lt;br /&gt;
    numitor = 6 % 10234573&lt;br /&gt;
    invers_modular_numitor = pow(numitor, 10234571, 10234573)&lt;br /&gt;
    rezultat = (numarator * invers_modular_numitor) % 10234573&lt;br /&gt;
    return rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare_n(n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 2000000000:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul n: &amp;quot;))&lt;br /&gt;
    validare_n(n)&lt;br /&gt;
    rezultat = suma_patrate_modulo(n)&lt;br /&gt;
    print(f&amp;quot;Datele de intrare corespund restrictiilor impuse\n {rezultat}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma pătratelor primelor n numere naturale, exprimată modulo 10234573. Programul primește un număr întreg n și verifică dacă acesta se încadrează într-un interval specific. Dacă numărul este valid, programul calculează suma pătratelor folosind formula matematică corespunzătoare și apoi exprimă rezultatul modulo 10234573.&lt;br /&gt;
&lt;br /&gt;
Funcția validare_n(n) primește numărul n și verifică dacă acesta se încadrează în intervalul [1, 2000000000]. Dacă numărul este în afara acestui interval, se afișează un mesaj de eroare și programul se oprește folosind funcția exit().&lt;br /&gt;
&lt;br /&gt;
Funcția suma_patrate_modulo(n) calculează suma pătratelor primelor n numere naturale folosind formula numarator / numitor exprimată modulo 10234573, unde numărătorul și numitorul sunt date de:&lt;br /&gt;
&lt;br /&gt;
numarator = (n * (n + 1) % 10234573) * ((2 * n + 1) % 10234573)&lt;br /&gt;
&lt;br /&gt;
numitor = 6 % 10234573&lt;br /&gt;
&lt;br /&gt;
Pentru a evita erorile de calcul, se calculează inversul modular al numitorului, utilizând funcția pow(). Inversul modular al numărului a este definit ca numărul b, astfel încât a * b % m = 1, unde m este un număr prim.&lt;br /&gt;
&lt;br /&gt;
În secțiunea principală a programului, utilizatorul este întrebat să introducă numărul n. Apoi, se verifică dacă numărul introdus este valid folosind funcția validare_n(n). Dacă numărul este valid, se calculează suma pătratelor folosind funcția suma_patrate_modulo(n) și se afișează pe ecran împreună cu un mesaj de confirmare a validării numărului introdus.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1212_-_Sum%C4%83_P%C4%83trare&amp;diff=6266</id>
		<title>1212 - Sumă Pătrare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1212_-_Sum%C4%83_P%C4%83trare&amp;diff=6266"/>
		<updated>2023-05-11T22:52:54Z</updated>

		<summary type="html">&lt;p&gt;Dragos1234: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1212/sumapatrate]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Fiind dat &#039;&#039;&#039;N&#039;&#039;&#039;, un număr natural nenul, calculați suma &#039;&#039;&#039;S=1^2 + 2^2 + 3^2 + ... + n^2&#039;&#039;&#039;, modulo &#039;&#039;&#039;10.234.573&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;N&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;, apoi pe un rând nou va afișa valoarea &#039;&#039;&#039;S&#039;&#039;&#039;. În caz contrar, se va afișa mesajul: &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;N&#039;&#039;&#039; &amp;amp;les; 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: Introduceti numarul n: 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Rezultatul este: 30&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1212&lt;br /&gt;
def suma_patrate_modulo(n):&lt;br /&gt;
    numarator = (n * (n + 1) % 10234573) * ((2 * n + 1) % 10234573)&lt;br /&gt;
    numitor = 6 % 10234573&lt;br /&gt;
    invers_modular_numitor = pow(numitor, 10234571, 10234573)&lt;br /&gt;
    rezultat = (numarator * invers_modular_numitor) % 10234573&lt;br /&gt;
    return rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare_n(n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 2000000000:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul n: &amp;quot;))&lt;br /&gt;
    validare_n(n)&lt;br /&gt;
    rezultat = suma_patrate_modulo(n)&lt;br /&gt;
    print(f&amp;quot;Datele de intrare corespund restrictiilor impuse\n {rezultat}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie rezolvare ==&lt;br /&gt;
Acest program calculează suma pătratelor primelor n numere naturale, exprimată modulo 10234573. Programul primește un număr întreg n și verifică dacă acesta se încadrează într-un interval specific. Dacă numărul este valid, programul calculează suma pătratelor folosind formula matematică corespunzătoare și apoi exprimă rezultatul modulo 10234573.&lt;br /&gt;
&lt;br /&gt;
Funcția validare_n(n) primește numărul n și verifică dacă acesta se încadrează în intervalul [1, 2000000000]. Dacă numărul este în afara acestui interval, se afișează un mesaj de eroare și programul se oprește folosind funcția exit().&lt;br /&gt;
&lt;br /&gt;
Funcția suma_patrate_modulo(n) calculează suma pătratelor primelor n numere naturale folosind formula numarator / numitor exprimată modulo 10234573, unde numărătorul și numitorul sunt date de:&lt;br /&gt;
&lt;br /&gt;
numarator = (n * (n + 1) % 10234573) * ((2 * n + 1) % 10234573)&lt;br /&gt;
&lt;br /&gt;
numitor = 6 % 10234573&lt;br /&gt;
&lt;br /&gt;
Pentru a evita erorile de calcul, se calculează inversul modular al numitorului, utilizând funcția pow(). Inversul modular al numărului a este definit ca numărul b, astfel încât a * b % m = 1, unde m este un număr prim.&lt;br /&gt;
&lt;br /&gt;
În secțiunea principală a programului, utilizatorul este întrebat să introducă numărul n. Apoi, se verifică dacă numărul introdus este valid folosind funcția validare_n(n). Dacă numărul este valid, se calculează suma pătratelor folosind funcția suma_patrate_modulo(n) și se afișează pe ecran împreună cu un mesaj de confirmare a validării numărului introdus.&lt;/div&gt;</summary>
		<author><name>Dragos1234</name></author>
	</entry>
</feed>