<?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=Tamas+Claudia</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=Tamas+Claudia"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Tamas_Claudia"/>
	<updated>2026-05-01T20:38:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28203&amp;diff=8213</id>
		<title>28203</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28203&amp;diff=8213"/>
		<updated>2023-12-17T12:11:09Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28203 (Dana Heuberger, Baia Mare)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Fie &amp;lt;math&amp;gt; f:  \mathbb{R} \longrightarrow  \mathbb{R} &amp;lt;/math&amp;gt; o funcție cu proprietatea&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\mathcal{P}: f(f(x)-e^x)=e^{f(x)-e^x} + x&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;x\in \mathbb{R}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol type=&amp;quot;a&amp;quot;&amp;gt;&amp;lt;li&amp;gt; Dați exemplu de funcție cu proprietatea &amp;lt;math&amp;gt; \mathcal{P}&amp;lt;/math&amp;gt;  care nu este monotonă. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;  Dați exemplu de funcție cu proprietatea &amp;lt;math&amp;gt; \mathcal{P}&amp;lt;/math&amp;gt;  care nu este continuă.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;  Fie f o funcție care admite primitive și are proprietatea &amp;lt;math&amp;gt; \mathcal{P}&amp;lt;/math&amp;gt; . Arătați că, dacă &amp;lt;math&amp;gt;f(x)\ge e^x&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;x\ge 0&amp;lt;/math&amp;gt;, atunci &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; este surjectivă.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;br /&gt;
Considerând funcția &amp;lt;math&amp;gt;g: \mathbb{R} \longrightarrow  \mathbb{R}, g(x) = f(x) - e^x &amp;lt;/math&amp;gt;, relația din enunț are forma echivalentă &amp;lt;math&amp;gt;g(g(x)) = x&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;x\in \mathbb{R}, (1).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Alegem &amp;lt;math&amp;gt;g(x)=-x&amp;lt;/math&amp;gt; care verifică &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt;, și obținem &amp;lt;math&amp;gt;f(x)=e^x-x&amp;lt;/math&amp;gt;, care nu este monotonă,, întrucât  &amp;lt;math&amp;gt;f&#039;(x)=e^x-1&amp;lt;/math&amp;gt; își schimbă semnul pe &amp;lt;math&amp;gt; \mathbb{R}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
b) Alegem &amp;lt;math&amp;gt; g(x) = \begin{cases} x,  &amp;amp; x\in \mathbb{Q} \\-x, &amp;amp; x\in \mathbb{R} \backslash \mathbb{Q} \end{cases} &amp;lt;/math&amp;gt;, care verifică &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt; și obținem&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x)= e^x + g(x) = \begin{cases} e^x,  &amp;amp; x\in \mathbb{Q} \\e^x-x, &amp;amp; x\in \mathbb{R} \backslash \mathbb{Q} \end{cases} &amp;lt;/math&amp;gt;. Deoarece &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; este suma dintre o funcție continuă și alta discontinuă (în orice punct din &amp;lt;math&amp;gt;\mathbb{R}^\ast&amp;lt;/math&amp;gt; ), rezultă că &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; este discontinuă.&lt;br /&gt;
&lt;br /&gt;
c) Pe baza ipotezelor asupra funcției &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;, rezultă că &amp;lt;math&amp;gt;g(x)\ge 0&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;x\ge 0&amp;lt;/math&amp;gt;, iar &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; admite primitive, deci are proprietatea lui Darboux. Combinând această proprietate cu injectivitatea funcției &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;, obținută din &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt;, rezultă că &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; este strict monotonă și continuă.&lt;br /&gt;
&lt;br /&gt;
În cazul în care &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; ar fi strict descrescătoare, pe baza surjectivității funcției &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;, ce se obține din &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt;, am avea că &amp;lt;math&amp;gt;\lim_{x \to \infty}g(x) =-\infty &amp;lt;/math&amp;gt;, ceea ce contrazice că &amp;lt;math&amp;gt;g(x)\ge 0&amp;lt;/math&amp;gt; pentru orice &amp;lt;math&amp;gt;x\ge 0&amp;lt;/math&amp;gt;. Prin urmare, &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; este strict crescătoare, &amp;lt;math&amp;gt;\lim_{x \to -\infty}g(x) =-\infty &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\lim_{x \to \infty}g(x) =\infty &amp;lt;/math&amp;gt;, ceea ce conduce la &amp;lt;math&amp;gt;\lim_{x \to -\infty}f(x) =-\infty &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\lim_{x \to \infty}f(x) =\infty &amp;lt;/math&amp;gt;, iar surjectivitatea funcției &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; este o consecință a proprietății lui Darboux, în particular a continuității.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28203&amp;diff=8209</id>
		<title>28203</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28203&amp;diff=8209"/>
		<updated>2023-12-17T11:59:05Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28203 (Dana Heuberger, Baia Mare)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Fie &amp;lt;math&amp;gt; f:  \mathbb{R} \longrightarrow  \mathbb{R} &amp;lt;/math&amp;gt; o funcție cu proprietatea&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\mathcal{P}: f(f(x)-e^x)=e^{f(x)-e^x} + x&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;x\in \mathbb{R}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol type=&amp;quot;a&amp;quot;&amp;gt;&amp;lt;li&amp;gt; Dați exemplu de funcție cu proprietatea &amp;lt;math&amp;gt; \mathcal{P}&amp;lt;/math&amp;gt;  care nu este monotonă. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;  Dați exemplu de funcție cu proprietatea &amp;lt;math&amp;gt; \mathcal{P}&amp;lt;/math&amp;gt;  care nu este continuă.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;  Fie f o funcție care admite primitive și are proprietatea &amp;lt;math&amp;gt; \mathcal{P}&amp;lt;/math&amp;gt; . Arătați că, dacă &amp;lt;math&amp;gt;f(x)\ge e^x&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;x\ge 0&amp;lt;/math&amp;gt;, atunci &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; este surjectivă.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;br /&gt;
Considerând funcția &amp;lt;math&amp;gt;g: \mathbb{R} \longrightarrow  \mathbb{R}, g(x) = f(x) - e^x &amp;lt;/math&amp;gt;, relația din enunț are forma echivalentă &amp;lt;math&amp;gt;g(g(x)) = x&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;x\in \mathbb{R}, (1).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Alegem &amp;lt;math&amp;gt;g(x)=-x&amp;lt;/math&amp;gt; care verifică (1), și obținem &amp;lt;math&amp;gt;f(x)=e^x-x&amp;lt;/math&amp;gt;, care nu este monotonă,, întrucât  &amp;lt;math&amp;gt;f&#039;(x)=e^x-1&amp;lt;/math&amp;gt; își schimbă semnul pe &amp;lt;math&amp;gt; \mathbb{R}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
b) Alegem &amp;lt;math&amp;gt; g(x) = \begin{cases} x,  &amp;amp; x\in \mathbb{Q} \\-x, &amp;amp; x\in \mathbb{R} \backslash \mathbb{Q} \end{cases} &amp;lt;/math&amp;gt;, care verifică (1) și obținem&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x)= e^x + g(x) = \begin{cases} e^x,  &amp;amp; x\in \mathbb{Q} \\e^x-x, &amp;amp; x\in \mathbb{R} \backslash \mathbb{Q} \end{cases} &amp;lt;/math&amp;gt;. Deoarece &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; este suma dintre o funcție continuă și alta discontinuă (în orice punct din &amp;lt;math&amp;gt;\mathbb{R}\ast&amp;lt;/math&amp;gt; ), rezultă că &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; este discontinuă.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28203&amp;diff=8205</id>
		<title>28203</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28203&amp;diff=8205"/>
		<updated>2023-12-17T11:17:21Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28203 (Dana Heuberger, Baia Mare)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Fie&#039;&#039; &amp;lt;math&amp;gt; &lt;br /&gt;
&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;a) Dați exemplu de funcție cu proprietatea &amp;lt;math&amp;gt; P&amp;lt;/math&amp;gt;  care nu este monotonă.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;b) Dați exemplu de funcție cu proprietatea &amp;lt;math&amp;gt; P&amp;lt;/math&amp;gt;  care nu este continuă.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;c) Fie f o funcție care admite primitive și are proprietatea &amp;lt;math&amp;gt; P&amp;lt;/math&amp;gt; . Arătați că, dacă f(x)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28203&amp;diff=8128</id>
		<title>28203</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28203&amp;diff=8128"/>
		<updated>2023-12-15T06:44:25Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28203 (Dana Heuberger, Baia Mare)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Fie&#039;&#039; &amp;lt;math&amp;gt; &lt;br /&gt;
&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;a) Dați exemplu de funcție cu proprietatea P care nu este monotonă.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;b) Dați exemplu de funcție cu proprietatea P care nu este continuă.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;c) Fie f o funcție care admite primitive și are proprietatea P. Arătați că, dacă f(x)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28203&amp;diff=8127</id>
		<title>28203</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28203&amp;diff=8127"/>
		<updated>2023-12-15T06:44:10Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28203 (Dana Heuberger, Baia Mare)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Fie&#039;&#039; &amp;lt;math&amp;gt; &lt;br /&gt;
&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;a) Dați exemplu de funcție cu proprietatea P care nu este monotonă.&#039;&#039;&lt;br /&gt;
&#039;&#039;b) Dați exemplu de funcție cu proprietatea P care nu este continuă.&#039;&#039;&lt;br /&gt;
&#039;&#039;c) Fie f o funcție care admite primitive și are proprietatea P. Arătați că, dacă f(x)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28203&amp;diff=8126</id>
		<title>28203</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28203&amp;diff=8126"/>
		<updated>2023-12-15T06:43:00Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: Pagină nouă: &amp;#039;&amp;#039;&amp;#039;28203 (Dana Heuberger, Baia Mare)&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;Fie&amp;#039;&amp;#039; &amp;lt;math&amp;gt;  &amp;lt;/math&amp;gt;&amp;#039;&amp;#039;  a) Dați exemplu de funcție cu proprietatea P care nu este monotonă. b) Dați exemplu de funcție cu proprietatea P care nu este continuă. c) Fie f o funcție care admite primitive și are proprietatea P. Arătați că, dacă f(x)  &amp;#039;&amp;#039;&amp;#039;Soluție:&amp;#039;&amp;#039;&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28203 (Dana Heuberger, Baia Mare)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Fie&#039;&#039; &amp;lt;math&amp;gt; &lt;br /&gt;
&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
a) Dați exemplu de funcție cu proprietatea P care nu este monotonă.&lt;br /&gt;
b) Dați exemplu de funcție cu proprietatea P care nu este continuă.&lt;br /&gt;
c) Fie f o funcție care admite primitive și are proprietatea P. Arătați că, dacă f(x)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2221_-_Cifre_003&amp;diff=6565</id>
		<title>2221 - Cifre 003</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2221_-_Cifre_003&amp;diff=6565"/>
		<updated>2023-05-15T05:27:28Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2221/cifre003]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Să se afle câte dintre numerele obținute din &#039;&#039;&#039;n&#039;&#039;&#039; prin ștergerea unei cifre, sunt divizibile cu 3.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa numărul numerelor obţinute din &#039;&#039;&#039;n&#039;&#039;&#039; prin ștergerea unei cifre, care sunt divizibile cu 3. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n &amp;amp;les;2.000.000.000 &lt;br /&gt;
*  dacă &#039;&#039;&#039;n&#039;&#039;&#039; are o cifră, prin ştergerea unei cifre el devine 0&lt;br /&gt;
* dacă prin ştergerea unei cifre numărul rămas începe cu 0, zerourile de la început se elimină&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 23701&lt;br /&gt;
; Ieșire&lt;br /&gt;
: &amp;quot;Datele introduse sunt corecte.&amp;quot;&lt;br /&gt;
: 2&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Prin eliminarea cifrei 1 se obţine numărul 2370 divizibil cu 3, iar prin eliminarea cifrei 7 se obţine 2301 divizibil cu 3.&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;
&lt;br /&gt;
def este_numar_valid(numar):&lt;br /&gt;
    if numar.isdigit() and int(numar) &amp;gt;= 1 and int(numar) &amp;lt;= 2000000000:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
def numar_divizibile_cu_3(numar):&lt;br /&gt;
    numere_divizibile_cu_3 = 0&lt;br /&gt;
    for i in range(len(numar)):&lt;br /&gt;
        cifra = int(numar[i])&lt;br /&gt;
        numar_fara_cifra = numar[:i] + numar[i + 1:]&lt;br /&gt;
        if int(numar_fara_cifra) % 3 == 0:&lt;br /&gt;
            numere_divizibile_cu_3 += 1&lt;br /&gt;
    return numere_divizibile_cu_3&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
   numar = int(input(&amp;quot;Introduceti numarul: &amp;quot;).strip())&lt;br /&gt;
    if este_numar_valid(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(numar_divizibile_cu_3(int(numar)))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
Funcția &#039;&#039;&#039;este_numar_valid(numar)&#039;&#039;&#039; verifică dacă &#039;&#039;&#039;numar&#039;&#039;&#039; este un număr natural valid, adică este format doar din cifre și este în intervalul [1, 2000000000]. Dacă numărul este valid, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;numar_divizibile_cu_3(numar)&#039;&#039;&#039; primește ca parametru un număr și determină câte dintre numerele obținute prin ștergerea unei cifre sunt divizibile cu 3. Aceasta folosește o buclă for pentru a itera prin fiecare cifră din numar, elimină cifra curentă și verifică dacă numărul obținut este divizibil cu 3. Dacă acesta este divizibil cu 3, funcția incrementează un contor &#039;&#039;&#039;numere_divizibile_cu_3&#039;&#039;&#039;. Funcția returnează numărul de numere divizibile cu 3.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală primește un număr de la utilizator folosind funcția input(). Aceasta verifică dacă numărul este valid folosind funcția &#039;&#039;&#039;este_numar_valid(numar)&#039;&#039;&#039;. Dacă numărul este valid, se afișează un mesaj de confirmare și numărul de numere divizibile cu 3 prin apelul funcției &#039;&#039;&#039;numar_divizibile_cu_3(numar)&#039;&#039;&#039;. Dacă numărul nu este valid, se afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5909</id>
		<title>2661 - Eliminare Cifra Mijloc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5909"/>
		<updated>2023-05-05T17:52:58Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2661/eliminareciframijloc]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; despre care știm că are număr impar de cifre. Să se afișeze valoarea obținută prin eliminarea cifrei din mijloc.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa valoarea obținută prin eliminarea cifrei din mijloc din numarul citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 100 &amp;amp;les; n &amp;amp;les; 10.000.000.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* se garantează că &#039;&#039;&#039;n&#039;&#039;&#039; are număr impar de cifre.&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 257&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Numărul obținut prin eliminarea cifrei din mijloc este: 27&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;
&lt;br /&gt;
def verifica_numar(numar):&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    if not 100 &amp;lt;= numar &amp;lt; 10**16:&lt;br /&gt;
        return False&lt;br /&gt;
    if numar % 2 == 0:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def elimina_cifra_mijloc(numar):&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    mijloc = len(str(numar)) // 2&lt;br /&gt;
    nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&lt;br /&gt;
    return int(nou)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numar = int(input(&amp;quot;Introduceți un număr cu un număr impar de cifre: &amp;quot;))&lt;br /&gt;
    if verifica_numar(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        rezultat = elimina_cifra_mijloc(numar)&lt;br /&gt;
        print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_numar(numar)&#039;&#039;&#039; verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul &#039;&#039;&#039;str&#039;&#039;, acesta este convertit la &#039;&#039;&#039;int&#039;&#039;&#039; folosind * int(numar).&lt;br /&gt;
* &#039;&#039;&#039;if not 100 &amp;lt;= numar &amp;lt; 10**16:&#039;&#039;&#039; - verifică dacă numărul este în intervalul &#039;&#039;&#039;[100, 10^16)&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;if numar % 2 == 0:&#039;&#039;&#039; - verifică dacă numărul are un număr impar de cifre, dacă nu, returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;return True&#039;&#039;&#039; - dacă numărul îndeplinește toate condițiile de validitate, returnează &#039;&#039;&#039;True&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;elimina_cifra_mijloc(numar)&#039;&#039;&#039; elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul str, acesta este convertit la int folosind int(numar).&lt;br /&gt;
* &#039;&#039;&#039;mijloc = len(str(numar)) // 2&#039;&#039;&#039;  - calculează poziția cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&#039;&#039;&#039; - elimină cifra din mijloc și creează un nou număr.&lt;br /&gt;
* &#039;&#039;&#039;return int(nou)&#039;&#039;&#039; - returnează noul număr obținut prin eliminarea cifrei din mijloc, sub forma unui int.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
În blocul &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, utilizatorul trebuie să introducă un număr cu un număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if verifica_numar(numar):&#039;&#039;&#039; - verifică dacă numărul introdus este valid.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&#039;&#039;&#039; - afișează un mesaj de confirmare.&lt;br /&gt;
* &#039;&#039;&#039;rezultat = elimina_cifra_mijloc(numar)&#039;&#039;&#039; - elimină cifra din mijloc și obține noul număr.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&#039;&#039;&#039; - afișează noul număr obținut prin eliminarea cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;else:&#039;&#039;&#039; - dacă numărul introdus nu este valid, afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4227_-_Cif_Tr&amp;diff=5908</id>
		<title>4227 - Cif Tr</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4227_-_Cif_Tr&amp;diff=5908"/>
		<updated>2023-05-05T17:52:23Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/4227/cif-tr]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Când adunăm două cifre &#039;&#039;&#039;cifra1&#039;&#039;&#039; și &#039;&#039;&#039;cifra2&#039;&#039;&#039;, obținem transport dacă &#039;&#039;&#039;cifra1&#039;&#039;&#039; + &#039;&#039;&#039;cifra2&#039;&#039;&#039; ≥ 10. Când adunăm două numere naturale, se poate obține chiar de mai multe ori transport. De exemplu, dacă adunăm 538 și 726, atunci obținem de două ori transport, prima oară când adunăm cifrele unităților, 8 + 6, a doua oară când adunăm cifrele sutelor, 5 + 7. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Se dau două numere naturale &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; care au același număr de cifre. Să se afișeze mesajul NU dacă adunând cele două numere cifră cu cifră nu obținem niciodată transport, sau mesajul DA, dacă obținem măcar o dată transport.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa mesajul &#039;&#039;&#039;NU&#039;&#039;&#039; dacă adunând cele două numere cifră cu cifră nu obținem niciodată transport, sau mesajul &#039;&#039;&#039;DA&#039;&#039;&#039;, dacă obținem măcar o dată transport. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n, m &amp;amp;les; 1.000.000.000&lt;br /&gt;
* numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; au același număr de cifre&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 538 726&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: DA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234 8765&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: NU&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;
#4227&lt;br /&gt;
&lt;br /&gt;
def verifica_date(numar1, numar2):&lt;br /&gt;
    if len(numar1) != len(numar2) or not numar1.isdigit() or not numar2.isdigit():&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def are_transport(numar1, numar2):&lt;br /&gt;
    for i in range(len(numar1)):&lt;br /&gt;
        suma = int(numar1[i]) + int(numar2[i])&lt;br /&gt;
        if suma &amp;gt;= 10:&lt;br /&gt;
            return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar1 = int(input(&amp;quot;Introduceti primul numar: &amp;quot;))&lt;br /&gt;
    numar2 = int(input(&amp;quot;Introduceti al doilea numar: &amp;quot;))&lt;br /&gt;
    if verifica_date(numar1, numar2):&lt;br /&gt;
        if are_transport(numar1, numar2):&lt;br /&gt;
            print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_date&#039;&#039;&#039; primește două argumente, &#039;&#039;&#039;numar1&#039;&#039;&#039; și &#039;&#039;&#039;numar2&#039;&#039;&#039;, și verifică dacă acestea au aceeași lungime și dacă fiecare cifră din cele două numere este un număr întreg. Dacă aceste condiții sunt îndeplinite, funcția afișează &amp;quot;Datele introduse sunt corecte.&amp;quot; și returnează valoarea True, în caz contrar, afișează &amp;quot;Datele introduse nu sunt corecte.&amp;quot; și returnează valoarea False.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;are_transport&#039;&#039;&#039; primește, de asemenea, două argumente, &#039;&#039;&#039;numar1&#039;&#039;&#039; și &#039;&#039;&#039;numar2&#039;&#039;&#039;, și verifică dacă există cel puțin un transport atunci când cele două numere sunt adunate cifră cu cifră. Pentru aceasta, funcția parcurge cifră cu cifră cele două numere și calculează suma. Dacă suma este mai mare sau egală cu 10, funcția returnează valoarea &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează valoarea &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În final, funcția &#039;&#039;&#039;main&#039;&#039;&#039; primește două valori de la utilizator prin intermediul funcției &#039;&#039;&#039;input&#039;&#039;&#039;, apelează funcția &#039;&#039;&#039;verifica_date&#039;&#039;&#039; pentru a verifica corectitudinea datelor, iar dacă acestea sunt corecte, apelează funcția &#039;&#039;&#039;are_transport&#039;&#039;&#039; pentru a verifica dacă există un transport în timpul adunării. În funcție de rezultatul obținut, programul afișează &#039;&#039;&#039;DA&#039;&#039;&#039; dacă există cel puțin un transport și &#039;&#039;&#039;NU&#039;&#039;&#039; dacă nu există niciun transport.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2221_-_Cifre_003&amp;diff=5907</id>
		<title>2221 - Cifre 003</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2221_-_Cifre_003&amp;diff=5907"/>
		<updated>2023-05-05T17:51:40Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2221/cifre003]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Să se afle câte dintre numerele obținute din &#039;&#039;&#039;n&#039;&#039;&#039; prin ștergerea unei cifre, sunt divizibile cu 3.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa numărul numerelor obţinute din &#039;&#039;&#039;n&#039;&#039;&#039; prin ștergerea unei cifre, care sunt divizibile cu 3. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n &amp;amp;les;2.000.000.000 &lt;br /&gt;
*  dacă &#039;&#039;&#039;n&#039;&#039;&#039; are o cifră, prin ştergerea unei cifre el devine 0&lt;br /&gt;
* dacă prin ştergerea unei cifre numărul rămas începe cu 0, zerourile de la început se elimină&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 23701&lt;br /&gt;
; Ieșire&lt;br /&gt;
: &amp;quot;Datele introduse sunt corecte.&amp;quot;&lt;br /&gt;
: 2&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Prin eliminarea cifrei 1 se obţine numărul 2370 divizibil cu 3, iar prin eliminarea cifrei 7 se obţine 2301 divizibil cu 3.&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;
&lt;br /&gt;
def este_numar_valid(numar):&lt;br /&gt;
    if numar.isdigit() and int(numar) &amp;gt;= 1 and int(numar) &amp;lt;= 2000000000:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
def numar_divizibile_cu_3(numar):&lt;br /&gt;
    numere_divizibile_cu_3 = 0&lt;br /&gt;
    for i in range(len(numar)):&lt;br /&gt;
        cifra = int(numar[i])&lt;br /&gt;
        numar_fara_cifra = numar[:i] + numar[i + 1:]&lt;br /&gt;
        if int(numar_fara_cifra) % 3 == 0:&lt;br /&gt;
            numere_divizibile_cu_3 += 1&lt;br /&gt;
    return numere_divizibile_cu_3&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceti numarul: &amp;quot;).strip()&lt;br /&gt;
    if este_numar_valid(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(numar_divizibile_cu_3(int(numar)))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
Funcția &#039;&#039;&#039;este_numar_valid(numar)&#039;&#039;&#039; verifică dacă &#039;&#039;&#039;numar&#039;&#039;&#039; este un număr natural valid, adică este format doar din cifre și este în intervalul [1, 2000000000]. Dacă numărul este valid, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;numar_divizibile_cu_3(numar)&#039;&#039;&#039; primește ca parametru un număr și determină câte dintre numerele obținute prin ștergerea unei cifre sunt divizibile cu 3. Aceasta folosește o buclă for pentru a itera prin fiecare cifră din numar, elimină cifra curentă și verifică dacă numărul obținut este divizibil cu 3. Dacă acesta este divizibil cu 3, funcția incrementează un contor &#039;&#039;&#039;numere_divizibile_cu_3&#039;&#039;&#039;. Funcția returnează numărul de numere divizibile cu 3.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală primește un număr de la utilizator folosind funcția input(). Aceasta verifică dacă numărul este valid folosind funcția &#039;&#039;&#039;este_numar_valid(numar)&#039;&#039;&#039;. Dacă numărul este valid, se afișează un mesaj de confirmare și numărul de numere divizibile cu 3 prin apelul funcției &#039;&#039;&#039;numar_divizibile_cu_3(numar)&#039;&#039;&#039;. Dacă numărul nu este valid, se afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2288_-_Cifra_Impara_Maxima&amp;diff=5906</id>
		<title>2288 - Cifra Impara Maxima</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2288_-_Cifra_Impara_Maxima&amp;diff=5906"/>
		<updated>2023-05-05T17:50:06Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2288/cifraimparamaxima]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să determine cea mai mare cifră impară a unui număr natural citit de la tastatură.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi se va afișa cea mai mare cifră impară numărului citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* numărul citit va fi mai mic decât 2.000.000.000&lt;br /&gt;
* dacă numărul citit nu conține cifre impare se va afișa mesajul &#039;&#039;&#039;Numărul citit nu conține cifre impare.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2785&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2064&lt;br /&gt;
&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Numărul citit nu conține cifre impare.&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;
#2288 &lt;br /&gt;
&lt;br /&gt;
def verificare_numar(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifica daca numarul este un numar natural mai mic decat 2.000.000.000.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return isinstance(numar, int) and 0 &amp;lt;= numar &amp;lt; 2000000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def determina_cifra_maxima_impara(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Determina cea mai mare cifra impara a unui numar.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    max_cifra_impara = -1&lt;br /&gt;
    while numar != 0:&lt;br /&gt;
        cifra = numar % 10&lt;br /&gt;
        if cifra % 2 == 1 and cifra &amp;gt; max_cifra_impara:&lt;br /&gt;
            max_cifra_impara = cifra&lt;br /&gt;
        numar //= 10&lt;br /&gt;
    if max_cifra_impara == -1:&lt;br /&gt;
        return &amp;quot;Nu exista.&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        return max_cifra_impara&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # Citeste un numar de la tastatura&lt;br /&gt;
    numar = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
    try:&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
        if verificare_numar(numar):&lt;br /&gt;
            # Afiseaza mesajul &amp;quot;Datele sunt introduse corect.&amp;quot; si cea mai mare cifra impara a numarului&lt;br /&gt;
            print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
            print(determina_cifra_maxima_impara(numar))&lt;br /&gt;
        else:&lt;br /&gt;
            # Afiseaza mesajul &amp;quot;Datele nu au fost introduse corect.&amp;quot;&lt;br /&gt;
            print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        # Afiseaza mesajul &amp;quot;Datele nu au fost introduse corect.&amp;quot;&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5895</id>
		<title>1566 - Cif Sort</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5895"/>
		<updated>2023-05-05T09:54:19Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1566/cifsort]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se da numarul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Afisati numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc.&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;
Dacă datele sunt introduse corect, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi se va afișa numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc. În caz contrar, se va afișa pe ecran. &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;10 &amp;amp;les; n &amp;amp;les; 99.999.999&#039;&#039;&#039;&lt;br /&gt;
*  &#039;&#039;&#039;n&#039;&#039;&#039; are un numar par de cifre.&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 123456&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele au fost introduse corect.&lt;br /&gt;
: 214365&lt;br /&gt;
== Explicație ==&lt;br /&gt;
1 a fost inversat cu 2, 3 cu 4, iar 5 cu 6.&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;
#1566&lt;br /&gt;
&lt;br /&gt;
def verificare(numar):&lt;br /&gt;
    if len(numar) % 2 != 0:&lt;br /&gt;
        return False&lt;br /&gt;
    try:&lt;br /&gt;
        int(numar)&lt;br /&gt;
        return True&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def rezolvare(numar):&lt;br /&gt;
    invers = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(0, len(numar), 2):&lt;br /&gt;
        invers += numar[i+1]&lt;br /&gt;
        invers += numar[i]&lt;br /&gt;
    return int(invers)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = int(input(&amp;quot;Introduceti un numar cu un numar par de cifre: &amp;quot;))&lt;br /&gt;
    if verificare(numar):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        print(rezolvare(numar))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&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 cod ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; verifică dacă numărul are un număr par de cifre și dacă toate cifrele sunt cifre întregi. Dacă aceste condiții sunt îndeplinite, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; primește numărul și creează un șir de caractere în care cifrele inversează poziția. Algoritmul funcției merge prin număr începând cu prima cifră și adăugând în noul șir caracterul de pe poziția impară și apoi caracterul de pe poziția pară, adică inversând poziția acestora. Funcția returnează numărul întors.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Instrucțiunea &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;:&#039;&#039;&#039; citește numărul de la tastatură, verifică dacă datele sunt introduse corect folosind funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; și afișează rezultatul apelând funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; în cazul în care datele sunt corecte sau afișează mesajul &#039;&#039;&#039;&amp;quot;Datele au fost introduse corect.&amp;quot;&#039;&#039;&#039; în caz contrar, se afișează mesajul &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect&amp;quot;&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5312</id>
		<title>2661 - Eliminare Cifra Mijloc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5312"/>
		<updated>2023-04-29T07:24:17Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2661/eliminareciframijloc]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; despre care știm că are număr impar de cifre. Să se afișeze valoarea obținută prin eliminarea cifrei din mijloc.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa valoarea obținută prin eliminarea cifrei din mijloc din numarul citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 100 &amp;amp;les; n &amp;amp;les; 10.000.000.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* se garantează că &#039;&#039;&#039;n&#039;&#039;&#039; are număr impar de cifre.&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 257&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Numărul obținut prin eliminarea cifrei din mijloc este: 27&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;
&lt;br /&gt;
def verifica_numar(numar):&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    if not 100 &amp;lt;= numar &amp;lt; 10**16:&lt;br /&gt;
        return False&lt;br /&gt;
    if numar % 2 == 0:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def elimina_cifra_mijloc(numar):&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    mijloc = len(str(numar)) // 2&lt;br /&gt;
    nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&lt;br /&gt;
    return int(nou)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceți un număr cu un număr impar de cifre: &amp;quot;)&lt;br /&gt;
    if verifica_numar(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        rezultat = elimina_cifra_mijloc(numar)&lt;br /&gt;
        print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_numar(numar)&#039;&#039;&#039; verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul &#039;&#039;&#039;str&#039;&#039;, acesta este convertit la &#039;&#039;&#039;int&#039;&#039;&#039; folosind * int(numar).&lt;br /&gt;
* &#039;&#039;&#039;if not 100 &amp;lt;= numar &amp;lt; 10**16:&#039;&#039;&#039; - verifică dacă numărul este în intervalul &#039;&#039;&#039;[100, 10^16)&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;if numar % 2 == 0:&#039;&#039;&#039; - verifică dacă numărul are un număr impar de cifre, dacă nu, returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;return True&#039;&#039;&#039; - dacă numărul îndeplinește toate condițiile de validitate, returnează &#039;&#039;&#039;True&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;elimina_cifra_mijloc(numar)&#039;&#039;&#039; elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul str, acesta este convertit la int folosind int(numar).&lt;br /&gt;
* &#039;&#039;&#039;mijloc = len(str(numar)) // 2&#039;&#039;&#039;  - calculează poziția cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&#039;&#039;&#039; - elimină cifra din mijloc și creează un nou număr.&lt;br /&gt;
* &#039;&#039;&#039;return int(nou)&#039;&#039;&#039; - returnează noul număr obținut prin eliminarea cifrei din mijloc, sub forma unui int.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
În blocul &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, utilizatorul trebuie să introducă un număr cu un număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if verifica_numar(numar):&#039;&#039;&#039; - verifică dacă numărul introdus este valid.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&#039;&#039;&#039; - afișează un mesaj de confirmare.&lt;br /&gt;
* &#039;&#039;&#039;rezultat = elimina_cifra_mijloc(numar)&#039;&#039;&#039; - elimină cifra din mijloc și obține noul număr.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&#039;&#039;&#039; - afișează noul număr obținut prin eliminarea cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;else:&#039;&#039;&#039; - dacă numărul introdus nu este valid, afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5311</id>
		<title>2661 - Eliminare Cifra Mijloc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5311"/>
		<updated>2023-04-29T07:23:50Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2661/eliminareciframijloc]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; despre care știm că are număr impar de cifre. Să se afișeze valoarea obținută prin eliminarea cifrei din mijloc.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa valoarea obținută prin eliminarea cifrei din mijloc din numarul citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 100 &amp;amp;les; n &amp;amp;les; 10.000.000.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* se garantează că &#039;&#039;&#039;n&#039;&#039;&#039; are număr impar de cifre.&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 257&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Numărul obținut prin eliminarea cifrei din mijloc este: 27&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;
&lt;br /&gt;
def verifica_numar(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
    :param numar: int sau str - numărul de verificat&lt;br /&gt;
    :return: bool - True dacă numărul este valid, False în caz contrar&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    if not 100 &amp;lt;= numar &amp;lt; 10**16:&lt;br /&gt;
        return False&lt;br /&gt;
    if numar % 2 == 0:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def elimina_cifra_mijloc(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
    :param numar: int sau str - numărul din care se va elimina cifra din mijloc&lt;br /&gt;
    :return: int - numărul obținut prin eliminarea cifrei din mijloc&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    mijloc = len(str(numar)) // 2&lt;br /&gt;
    nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&lt;br /&gt;
    return int(nou)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceți un număr cu un număr impar de cifre: &amp;quot;)&lt;br /&gt;
    if verifica_numar(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        rezultat = elimina_cifra_mijloc(numar)&lt;br /&gt;
        print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_numar(numar)&#039;&#039;&#039; verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul &#039;&#039;&#039;str&#039;&#039;, acesta este convertit la &#039;&#039;&#039;int&#039;&#039;&#039; folosind * int(numar).&lt;br /&gt;
* &#039;&#039;&#039;if not 100 &amp;lt;= numar &amp;lt; 10**16:&#039;&#039;&#039; - verifică dacă numărul este în intervalul &#039;&#039;&#039;[100, 10^16)&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;if numar % 2 == 0:&#039;&#039;&#039; - verifică dacă numărul are un număr impar de cifre, dacă nu, returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;return True&#039;&#039;&#039; - dacă numărul îndeplinește toate condițiile de validitate, returnează &#039;&#039;&#039;True&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funcția &#039;&#039;&#039;elimina_cifra_mijloc(numar)&#039;&#039;&#039; elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul str, acesta este convertit la int folosind int(numar).&lt;br /&gt;
* &#039;&#039;&#039;mijloc = len(str(numar)) // 2&#039;&#039;&#039;  - calculează poziția cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&#039;&#039;&#039; - elimină cifra din mijloc și creează un nou număr.&lt;br /&gt;
* &#039;&#039;&#039;return int(nou)&#039;&#039;&#039; - returnează noul număr obținut prin eliminarea cifrei din mijloc, sub forma unui int.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
În blocul &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, utilizatorul trebuie să introducă un număr cu un număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if verifica_numar(numar):&#039;&#039;&#039; - verifică dacă numărul introdus este valid.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&#039;&#039;&#039; - afișează un mesaj de confirmare.&lt;br /&gt;
* &#039;&#039;&#039;rezultat = elimina_cifra_mijloc(numar)&#039;&#039;&#039; - elimină cifra din mijloc și obține noul număr.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&#039;&#039;&#039; - afișează noul număr obținut prin eliminarea cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;else:&#039;&#039;&#039; - dacă numărul introdus nu este valid, afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5310</id>
		<title>2661 - Eliminare Cifra Mijloc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5310"/>
		<updated>2023-04-29T07:23:24Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2661/eliminareciframijloc]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; despre care știm că are număr impar de cifre. Să se afișeze valoarea obținută prin eliminarea cifrei din mijloc.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa valoarea obținută prin eliminarea cifrei din mijloc din numarul citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 100 &amp;amp;les; n &amp;amp;les; 10.000.000.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* se garantează că &#039;&#039;&#039;n&#039;&#039;&#039; are număr impar de cifre.&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 257&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Numărul obținut prin eliminarea cifrei din mijloc este: 27&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;
&lt;br /&gt;
def verifica_numar(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
    :param numar: int sau str - numărul de verificat&lt;br /&gt;
    :return: bool - True dacă numărul este valid, False în caz contrar&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    if not 100 &amp;lt;= numar &amp;lt; 10**16:&lt;br /&gt;
        return False&lt;br /&gt;
    if numar % 2 == 0:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def elimina_cifra_mijloc(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
    :param numar: int sau str - numărul din care se va elimina cifra din mijloc&lt;br /&gt;
    :return: int - numărul obținut prin eliminarea cifrei din mijloc&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    mijloc = len(str(numar)) // 2&lt;br /&gt;
    nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&lt;br /&gt;
    return int(nou)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceți un număr cu un număr impar de cifre: &amp;quot;)&lt;br /&gt;
    if verifica_numar(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        rezultat = elimina_cifra_mijloc(numar)&lt;br /&gt;
        print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_numar(numar)&#039;&#039;&#039; verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul &#039;&#039;&#039;str&#039;&#039;, acesta este convertit la &#039;&#039;&#039;int&#039;&#039;&#039; folosind * int(numar).&lt;br /&gt;
* &#039;&#039;&#039;if not 100 &amp;lt;= numar &amp;lt; 10**16:&#039;&#039;&#039; - verifică dacă numărul este în intervalul &#039;&#039;&#039;[100, 10^16)&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;if numar % 2 == 0:&#039;&#039;&#039; - verifică dacă numărul are un număr impar de cifre, dacă nu, returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;return True&#039;&#039;&#039; - dacă numărul îndeplinește toate condițiile de validitate, returnează &#039;&#039;&#039;True&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Funcția &#039;&#039;&#039;elimina_cifra_mijloc(numar)&#039;&#039;&#039; elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul str, acesta este convertit la int folosind int(numar).&lt;br /&gt;
* &#039;&#039;&#039;mijloc = len(str(numar)) // 2&#039;&#039;&#039;  - calculează poziția cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&#039;&#039;&#039; - elimină cifra din mijloc și creează un nou număr.&lt;br /&gt;
* &#039;&#039;&#039;return int(nou)&#039;&#039;&#039; - returnează noul număr obținut prin eliminarea cifrei din mijloc, sub forma unui int.&amp;lt;br&amp;gt;În blocul &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, utilizatorul trebuie să introducă un număr cu un număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if verifica_numar(numar):&#039;&#039;&#039; - verifică dacă numărul introdus este valid.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&#039;&#039;&#039; - afișează un mesaj de confirmare.&lt;br /&gt;
* &#039;&#039;&#039;rezultat = elimina_cifra_mijloc(numar)&#039;&#039;&#039; - elimină cifra din mijloc și obține noul număr.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&#039;&#039;&#039; - afișează noul număr obținut prin eliminarea cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;else:&#039;&#039;&#039; - dacă numărul introdus nu este valid, afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5309</id>
		<title>2661 - Eliminare Cifra Mijloc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2661_-_Eliminare_Cifra_Mijloc&amp;diff=5309"/>
		<updated>2023-04-29T07:23:06Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2661/eliminareciframijloc]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; despre care știm că are număr impar de cifre. Să se afișeze valoarea obținută prin eliminarea cifrei din mijloc.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa valoarea obținută prin eliminarea cifrei din mijloc din numarul citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 100 &amp;amp;les; n &amp;amp;les; 10.000.000.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* se garantează că &#039;&#039;&#039;n&#039;&#039;&#039; are număr impar de cifre.&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 257&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Numărul obținut prin eliminarea cifrei din mijloc este: 27&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;
&lt;br /&gt;
def verifica_numar(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
    :param numar: int sau str - numărul de verificat&lt;br /&gt;
    :return: bool - True dacă numărul este valid, False în caz contrar&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    if not 100 &amp;lt;= numar &amp;lt; 10**16:&lt;br /&gt;
        return False&lt;br /&gt;
    if numar % 2 == 0:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def elimina_cifra_mijloc(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
    :param numar: int sau str - numărul din care se va elimina cifra din mijloc&lt;br /&gt;
    :return: int - numărul obținut prin eliminarea cifrei din mijloc&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if isinstance(numar, str):&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
    mijloc = len(str(numar)) // 2&lt;br /&gt;
    nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&lt;br /&gt;
    return int(nou)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceți un număr cu un număr impar de cifre: &amp;quot;)&lt;br /&gt;
    if verifica_numar(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        rezultat = elimina_cifra_mijloc(numar)&lt;br /&gt;
        print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_numar(numar)&#039;&#039;&#039; verifică dacă numărul dat are un număr impar de cifre și se află în intervalul [100, 10^16).&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul &#039;&#039;&#039;str&#039;&#039;, acesta este convertit la &#039;&#039;&#039;int&#039;&#039;&#039; folosind * int(numar).&lt;br /&gt;
* &#039;&#039;&#039;if not 100 &amp;lt;= numar &amp;lt; 10**16:&#039;&#039;&#039; - verifică dacă numărul este în intervalul &#039;&#039;&#039;[100, 10^16)&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;if numar % 2 == 0:&#039;&#039;&#039; - verifică dacă numărul are un număr impar de cifre, dacă nu, returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;return True&#039;&#039;&#039; - dacă numărul îndeplinește toate condițiile de validitate, returnează &#039;&#039;&#039;True&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;elimina_cifra_mijloc(numar)&#039;&#039;&#039; elimină cifra din mijlocul unui număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if isinstance(numar, str):&#039;&#039;&#039; - dacă numărul este de tipul str, acesta este convertit la int folosind int(numar).&lt;br /&gt;
* &#039;&#039;&#039;mijloc = len(str(numar)) // 2&#039;&#039;&#039;  - calculează poziția cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;nou = str(numar)[:mijloc] + str(numar)[mijloc+1:]&#039;&#039;&#039; - elimină cifra din mijloc și creează un nou număr.&lt;br /&gt;
* &#039;&#039;&#039;return int(nou)&#039;&#039;&#039; - returnează noul număr obținut prin eliminarea cifrei din mijloc, sub forma unui int.&amp;lt;br&amp;gt;În blocul &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, utilizatorul trebuie să introducă un număr cu un număr impar de cifre.&lt;br /&gt;
* &#039;&#039;&#039;if verifica_numar(numar):&#039;&#039;&#039; - verifică dacă numărul introdus este valid.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&#039;&#039;&#039; - afișează un mesaj de confirmare.&lt;br /&gt;
* &#039;&#039;&#039;rezultat = elimina_cifra_mijloc(numar)&#039;&#039;&#039; - elimină cifra din mijloc și obține noul număr.&lt;br /&gt;
* &#039;&#039;&#039;print(&amp;quot;Numărul obținut prin eliminarea cifrei din mijloc este:&amp;quot;, rezultat)&#039;&#039;&#039; - afișează noul număr obținut prin eliminarea cifrei din mijloc.&lt;br /&gt;
* &#039;&#039;&#039;else:&#039;&#039;&#039; - dacă numărul introdus nu este valid, afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0665_-_Div_Cif&amp;diff=5304</id>
		<title>0665 - Div Cif</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0665_-_Div_Cif&amp;diff=5304"/>
		<updated>2023-04-29T07:13:04Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/665/divcif]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau două numere naturale &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;m&#039;&#039;&#039;. Determinați câte numere naturale din intervalul &#039;&#039;&#039;[n, m]&#039;&#039;&#039; se divid cu toate cifrele lor nenule.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;m&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi rogramul va afișa numărul &#039;&#039;&#039;nr&#039;&#039;&#039;, reprezentând numărul de numere naturale din intervalul &#039;&#039;&#039;[n, m]&#039;&#039;&#039; care se divid cu toate cifrele lor nenule. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; m &amp;amp;les; 1.000.000.000 &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; n - m &amp;amp;les; 1.000 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 11 25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 6&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Cele &#039;&#039;&#039;6&#039;&#039;&#039; numere din intervalul &#039;&#039;&#039;[11,25]&#039;&#039;&#039; care respectă regula sunt:&#039;&#039;&#039;11 12 15 20 22 24&#039;&#039;&#039;.&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;
#0665&lt;br /&gt;
&lt;br /&gt;
def verificare_date_intrare(n: int, m: int) -&amp;gt; bool:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifică dacă datele de intrare sunt corecte conform cerințelor problemei.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= m &amp;lt;= 1000000000) or not(abs(n-m) &amp;lt;= 1000):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numarare_numere(n: int, m: int) -&amp;gt; int:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Numără câte numere din intervalul [n, m] se divid cu toate cifrele lor nenule.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    k = 0&lt;br /&gt;
    for i in range(n, m+1):&lt;br /&gt;
        x = i&lt;br /&gt;
        aux = i&lt;br /&gt;
        y = i&lt;br /&gt;
        cate = 0&lt;br /&gt;
        p = 0&lt;br /&gt;
        while x != 0:&lt;br /&gt;
            if x % 10 != 0:&lt;br /&gt;
                if aux % (x % 10) == 0:&lt;br /&gt;
                    cate += 1&lt;br /&gt;
            p += 1&lt;br /&gt;
            if x % 10 == 0:&lt;br /&gt;
                cate += 1&lt;br /&gt;
            x = x // 10&lt;br /&gt;
        if p == cate:&lt;br /&gt;
            k += 1&lt;br /&gt;
    return k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citirea datelor de intrare&lt;br /&gt;
    n, m = map(int, input(&amp;quot;Introduceti numerele cu spatii intre ele: &amp;quot;).split())&lt;br /&gt;
&lt;br /&gt;
    # verificarea datelor de intrare&lt;br /&gt;
    if not verificare_date_intrare(n, m):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    # afișarea mesajului de confirmare a datelor de intrare&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # numărarea numerelor care respectă condiția dată și afișarea rezultatului&lt;br /&gt;
    k = numarare_numere(n, m)&lt;br /&gt;
    print(k)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verificare_date_intrare&#039;&#039;&#039; primește doi parametri întregi &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă valorile primite sunt valide, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;. Datele de intrare sunt considerate valide dacă &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; sunt între 1 și 1.000.000.000, iar diferența dintre &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; este mai mică sau egală cu &#039;&#039;&#039;1000&#039;&#039;&#039;. Funcția &#039;&#039;&#039;abs&#039;&#039;&#039; este folosită pentru a evita verificarea a două cazuri.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;numarare_numere&#039;&#039;&#039; primește aceiași doi parametri &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; și returnează numărul de numere din intervalul [n, m] care se divid cu toate cifrele lor nenule.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În main, se citesc datele de intrare de la tastatură, iar apoi se verifică dacă sunt valide folosind funcția &#039;&#039;&#039;verificare_date_intrare&#039;&#039;&#039;. Dacă acestea sunt invalide, se afișează un mesaj corespunzător și programul se încheie cu ajutorul funcției exit(). În caz contrar, se afișează un mesaj de confirmare și se numără numerele care respectă condiția dată utilizând funcția &#039;&#039;&#039;numarare_numere&#039;&#039;&#039;. Rezultatul este apoi afișat la consolă.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0372_-_Numarare_1&amp;diff=5286</id>
		<title>0372 - Numarare 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0372_-_Numarare_1&amp;diff=5286"/>
		<updated>2023-04-28T19:32:03Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/372/numarare1]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citesc &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Determinați în câte perechi citite consecutiv numerele au sumele cifrelor de parități diferite.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează pe ecran numărul &#039;&#039;&#039;m&#039;&#039;&#039; , reprezentând numărul de perechi care respectă regula. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 100 &#039;&#039;&#039;&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 176 2943 52422 911 1975&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 2&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Cele &#039;&#039;&#039;2&#039;&#039;&#039; perechi sunt: &#039;&#039;&#039;2943 52422, 911 1975.&#039;&#039;&#039;&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;
&lt;br /&gt;
def verifica_date_intrare(n: int, numere: list[int]) -&amp;gt; bool:&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100:&lt;br /&gt;
        return False&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar &amp;lt; 0 or numar &amp;gt; 999999999:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de numere: &amp;quot;))&lt;br /&gt;
    numere_input = input(&amp;quot;Introduceti lista de numere separate prin spatii: &amp;quot;).split()&lt;br /&gt;
    numere = [int(numar) for numar in numere_input]&lt;br /&gt;
&lt;br /&gt;
    if verifica_date_intrare(n, numere):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        numar_perechi = 0&lt;br /&gt;
        pr = numere[0]&lt;br /&gt;
        for i in range(1, n):&lt;br /&gt;
            x = numere[i]&lt;br /&gt;
            aux = x&lt;br /&gt;
            a = pr&lt;br /&gt;
            s1 = 0&lt;br /&gt;
            s2 = 0&lt;br /&gt;
            while aux != 0:&lt;br /&gt;
                s1 = s1 + aux % 10&lt;br /&gt;
                aux = aux // 10&lt;br /&gt;
            while a != 0:&lt;br /&gt;
                s2 = s2 + a % 10&lt;br /&gt;
                a = a // 10&lt;br /&gt;
            if s1 % 2 == 0 and s2 % 2 == 1:&lt;br /&gt;
                numar_perechi += 1&lt;br /&gt;
            if s1 % 2 == 1 and s2 % 2 == 0:&lt;br /&gt;
                numar_perechi += 1&lt;br /&gt;
            pr = x&lt;br /&gt;
        print(numar_perechi)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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 cod începe prin definirea unei funcții &#039;&#039;&#039;verifica_date_intrare&#039;&#039;&#039; care primește doi parametri: &#039;&#039;&#039;n&#039;&#039;&#039; de tip int și numere de tip &#039;&#039;&#039;list[int]&#039;&#039;&#039;. Funcția verifică dacă &#039;&#039;&#039;n&#039;&#039;&#039; este mai mare sau egal cu 1 și mai mic sau egal cu 100, iar fiecare element din lista numere este mai mare sau egal cu 0 și mai mic sau egal cu 999999999. Dacă oricare dintre aceste condiții nu este îndeplinită, funcția va returna &#039;&#039;&#039;False&#039;&#039;&#039;, altfel va returna &#039;&#039;&#039;True&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Următoarea secțiune a codului verifică datele de intrare prin intermediul funcției verifica_date_intrare. Dacă datele sunt corecte, utilizatorul este informat că datele introduse sunt corecte printr-un mesaj specific. Variabila &#039;&#039;&#039;numere_input&#039;&#039;&#039; primește o listă de numere introduse de utilizator, care este apoi convertită într-o listă de numere întregi folosind o buclă for și o listă de comprimare.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Codul continuă prin inițializarea variabilelor și efectuarea unui număr de iterații de calcul al perechilor de numere. În fiecare iterație, se calculează sumele cifrelor fiecărui număr și se verifică dacă acestea sunt impare sau pare. În funcție de rezultat, variabila &#039;&#039;&#039;numar_perechi&#039;&#039;&#039; este actualizată. La sfârșit, numărul total de perechi este afișat.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0369_-_Oglindit_3&amp;diff=5285</id>
		<title>0369 - Oglindit 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0369_-_Oglindit_3&amp;diff=5285"/>
		<updated>2023-04-28T19:22:15Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/369/oglindit3]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Calculaţi oglinditul sumei cifrelor sale.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul va citi de la tastatură un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afişa oglinditul sumei cifrelor lui &#039;&#039;&#039;n&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* numărul citit va fi mai mic decât &amp;lt;math&amp;gt;2^{31}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2705&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 41&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Suma cifrelor lui &#039;&#039;&#039;2705&#039;&#039;&#039; este &#039;&#039;&#039;14&#039;&#039;&#039;, iar oglinditul lui &#039;&#039;&#039;14&#039;&#039;&#039; este &#039;&#039;&#039;41&#039;&#039;&#039;.&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;
#0369&lt;br /&gt;
&lt;br /&gt;
def verifica_numar(numar):&lt;br /&gt;
    if numar &amp;gt;= 0 and numar &amp;lt; 2**31:&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;
    numar = int(input(&amp;quot;Introduceti numarul: &amp;quot;))&lt;br /&gt;
    if verifica_numar(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        suma_cifre = 0&lt;br /&gt;
        while numar != 0:&lt;br /&gt;
            cifra = numar % 10&lt;br /&gt;
            suma_cifre += cifra&lt;br /&gt;
            numar //= 10&lt;br /&gt;
&lt;br /&gt;
        oglindit = 0&lt;br /&gt;
        while suma_cifre != 0:&lt;br /&gt;
            cifra = suma_cifre % 10&lt;br /&gt;
            oglindit = oglindit * 10 + cifra&lt;br /&gt;
            suma_cifre //= 10&lt;br /&gt;
&lt;br /&gt;
        print(oglindit)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
În funcția &#039;&#039;&#039;verifica_numar&#039;&#039;&#039;, se primește un număr și se verifică dacă se află în intervalul [0, 2^31-1]. Dacă numărul este în acest interval, se returnează adevărat (True), altfel se returnează fals (False).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În funcția &#039;&#039;&#039;main&#039;&#039;&#039;, se citește numărul de la tastatură folosind funcția &#039;&#039;&#039;input()&#039;&#039;&#039;, care primește un string ce va fi afișat în consolă ca mesaj pentru utilizator. Apoi, se apelează funcția &#039;&#039;&#039;verifica_numar&#039;&#039;&#039; pentru a verifica dacă numărul introdus este valid. Dacă numărul este valid, se afișează un mesaj corespunzător prin intermediul funcției print().&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Se inițializează variabila &#039;&#039;&#039;suma_cifre&#039;&#039;&#039; cu 0 și se intră într-un &#039;&#039;&#039;while&#039;&#039;&#039; loop, care va calcula suma cifrelor numărului prin împărțirea repetată a acestuia la 10 și adunarea resturilor. Acest lucru se realizează prin calcularea modulului cu 10 al numărului (cifra unităților) și adăugarea acesteia la variabila suma_cifre. După fiecare iterație, numărul se împarte la 10 pentru a se obține următoarea cifră.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Se inițializează variabila &#039;&#039;&#039;oglindit&#039;&#039;&#039; cu 0 și se intră în alt while loop care va calcula oglinditul sumei cifrelor. Acest lucru se face prin împărțirea repetată a sumei cifrelor la 10 și adăugarea resturilor la variabila oglindit, înmulțind întreaga valoare a lui oglindit cu 10 după fiecare iterație. După fiecare iterație, suma cifrelor se împarte la 10 pentru a se obține următoarea cifră. La final, se afișează valoarea variabilei oglindit.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0362_-_Sum_Cif_1&amp;diff=5284</id>
		<title>0362 - Sum Cif 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0362_-_Sum_Cif_1&amp;diff=5284"/>
		<updated>2023-04-28T19:15:37Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/362/sumcif1]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Să se determine suma cifrelor aflate pe poziții pare. Numărarea pozițiilor în numărul dat se face începând de la cifra unităților.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează pe ecran numărul &#039;&#039;&#039;s&#039;&#039;&#039;, reprezentând suma cifrelor aflate pe poziții pare. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 59712654&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Suma cifrelor aflate pe pozitii pare este 19.&lt;br /&gt;
&lt;br /&gt;
== Explicație ==&lt;br /&gt;
S-au adunat cifrele &#039;&#039;&#039;5 2 7 5&#039;&#039;&#039;.&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;
#0362&lt;br /&gt;
&lt;br /&gt;
def verificare_date(n: int) -&amp;gt; bool:&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def suma_cifre_pare(n: int) -&amp;gt; int:&lt;br /&gt;
    suma = 0&lt;br /&gt;
    pozitie = 1&lt;br /&gt;
&lt;br /&gt;
    while n &amp;gt; 0:&lt;br /&gt;
        cifra = n % 10&lt;br /&gt;
        if pozitie % 2 == 0:&lt;br /&gt;
            suma += cifra&lt;br /&gt;
        pozitie += 1&lt;br /&gt;
        n //= 10&lt;br /&gt;
&lt;br /&gt;
    return suma&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 un numar: &amp;quot;))&lt;br /&gt;
    if verificare_date(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;Suma cifrelor aflate pe pozitii pare este {suma_cifre_pare(n)}.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Prima funcție, &#039;&#039;&#039;verificare_date(n: int) -&amp;gt; bool&#039;&#039;&#039;, primește ca argument un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă numărul este între 1 și 1.000.000.000 și &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;A doua funcție, &#039;&#039;&#039;suma_cifre_pare(n: int) -&amp;gt; int&#039;&#039;&#039;, primește ca argument un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și calculează suma cifrelor aflate pe poziții pare în numărul dat. Aceasta se realizează folosind o buclă while care descompune numărul în cifre și adaugă cifrele aflate pe poziții pare la variabila suma.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală începe prin citirea unui număr întreg de la tastatură, utilizând funcția input() și transformând rezultatul într-un întreg cu ajutorul funcției int(). Dacă numărul introdus este valid, adică este între 1 și 1.000.000.000, se afișează un mesaj corespunzător și se calculează și afișează suma cifrelor aflate pe poziții pare, utilizând funcția &#039;&#039;&#039;suma_cifre_pare(n)&#039;&#039;&#039;. În caz contrar, se afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0361_-_Cifra_1&amp;diff=5283</id>
		<title>0361 - Cifra 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0361_-_Cifra_1&amp;diff=5283"/>
		<updated>2023-04-28T19:10:12Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/361/cifra1]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Determinați cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului &#039;&#039;&#039;n&#039;&#039;&#039;.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează pe ecran numărul cerut &#039;&#039;&#039;m&#039;&#039;&#039; care se poate obține prin eliminarea unei singure cifre din scrierea numărului &#039;&#039;&#039;n&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 423234 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului 423234 este: 43234&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;
#0361&lt;br /&gt;
&lt;br /&gt;
def verificare_date(n: int) -&amp;gt; bool:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Verifică dacă numărul n se află în intervalul [1, 1000000000].&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000000&lt;br /&gt;
&lt;br /&gt;
def cel_mai_mare_numar_dupa_eliminare(n: int) -&amp;gt; int:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Determină cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului n.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    numar_dupa_eliminare = -1 # inițializăm cu o valoare imposibilă&lt;br /&gt;
    for i in range(len(str(n))): # parcurgem cifrele numărului&lt;br /&gt;
        cifra_curenta = str(n)[i]&lt;br /&gt;
        numar_nou = int(str(n)[:i] + str(n)[i+1:]) # eliminăm cifra curentă&lt;br /&gt;
        if numar_nou &amp;gt; numar_dupa_eliminare:&lt;br /&gt;
            numar_dupa_eliminare = numar_nou # actualizăm numărul maxim&lt;br /&gt;
    return numar_dupa_eliminare&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Funcția principală.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți un număr natural: &amp;quot;))&lt;br /&gt;
    if verificare_date(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului&amp;quot;, n, &amp;quot;este:&amp;quot;, cel_mai_mare_numar_dupa_eliminare(n))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2288_-_Cifra_Impara_Maxima&amp;diff=5282</id>
		<title>2288 - Cifra Impara Maxima</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2288_-_Cifra_Impara_Maxima&amp;diff=5282"/>
		<updated>2023-04-28T19:08:17Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2288/cifraimparamaxima]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să determine cea mai mare cifră impară a unui număr natural citit de la tastatură.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi se va afișa cea mai mare cifră impară numărului citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* numărul citit va fi mai mic decât 2.000.000.000&lt;br /&gt;
* dacă numărul citit nu conține cifre impare se va afișa mesajul &#039;&#039;&#039;Numărul citit nu conține cifre impare.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2785&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2064&lt;br /&gt;
&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Numărul citit nu conține cifre impare.&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;
#2288 &lt;br /&gt;
&lt;br /&gt;
def verificare_numar(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifica daca numarul este un numar natural mai mic decat 2.000.000.000.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return isinstance(numar, int) and 0 &amp;lt;= numar &amp;lt; 2000000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def determina_cifra_maxima_impara(numar):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Determina cea mai mare cifra impara a unui numar.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    max_cifra_impara = -1&lt;br /&gt;
    while numar != 0:&lt;br /&gt;
        cifra = numar % 10&lt;br /&gt;
        if cifra % 2 == 1 and cifra &amp;gt; max_cifra_impara:&lt;br /&gt;
            max_cifra_impara = cifra&lt;br /&gt;
        numar //= 10&lt;br /&gt;
    if max_cifra_impara == -1:&lt;br /&gt;
        return &amp;quot;Nu exista.&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        return max_cifra_impara&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # Citeste un numar de la tastatura&lt;br /&gt;
    numar = input(&amp;quot;Introduceti un numar natural: &amp;quot;)&lt;br /&gt;
    try:&lt;br /&gt;
        numar = int(numar)&lt;br /&gt;
        if verificare_numar(numar):&lt;br /&gt;
            # Afiseaza mesajul &amp;quot;Datele sunt introduse corect.&amp;quot; si cea mai mare cifra impara a numarului&lt;br /&gt;
            print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
            print(determina_cifra_maxima_impara(numar))&lt;br /&gt;
        else:&lt;br /&gt;
            # Afiseaza mesajul &amp;quot;Datele nu au fost introduse corect.&amp;quot;&lt;br /&gt;
            print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        # Afiseaza mesajul &amp;quot;Datele nu au fost introduse corect.&amp;quot;&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0361_-_Cifra_1&amp;diff=5281</id>
		<title>0361 - Cifra 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0361_-_Cifra_1&amp;diff=5281"/>
		<updated>2023-04-28T19:05:10Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/361/cifra1]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Determinați cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului &#039;&#039;&#039;n&#039;&#039;&#039;.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează pe ecran numărul cerut &#039;&#039;&#039;m&#039;&#039;&#039; care se poate obține prin eliminarea unei singure cifre din scrierea numărului &#039;&#039;&#039;n&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 423234 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului 423234 este: 43234&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;
&lt;br /&gt;
def verificare_date(n: int) -&amp;gt; bool:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Verifică dacă numărul n se află în intervalul [1, 1000000000].&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000000&lt;br /&gt;
&lt;br /&gt;
def cel_mai_mare_numar_dupa_eliminare(n: int) -&amp;gt; int:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Determină cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului n.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    numar_dupa_eliminare = -1 # inițializăm cu o valoare imposibilă&lt;br /&gt;
    for i in range(len(str(n))): # parcurgem cifrele numărului&lt;br /&gt;
        cifra_curenta = str(n)[i]&lt;br /&gt;
        numar_nou = int(str(n)[:i] + str(n)[i+1:]) # eliminăm cifra curentă&lt;br /&gt;
        if numar_nou &amp;gt; numar_dupa_eliminare:&lt;br /&gt;
            numar_dupa_eliminare = numar_nou # actualizăm numărul maxim&lt;br /&gt;
    return numar_dupa_eliminare&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Funcția principală.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți un număr natural: &amp;quot;))&lt;br /&gt;
    if verificare_date(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului&amp;quot;, n, &amp;quot;este:&amp;quot;, cel_mai_mare_numar_dupa_eliminare(n))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0361_-_Cifra_1&amp;diff=5280</id>
		<title>0361 - Cifra 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0361_-_Cifra_1&amp;diff=5280"/>
		<updated>2023-04-28T19:04:33Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/361/cifra1]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Determinați cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului &#039;&#039;&#039;n&#039;&#039;&#039;.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează pe ecran numărul cerut &#039;&#039;&#039;numar_dupa_eliminare&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 423234 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului 423234 este: 43234&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;
&lt;br /&gt;
def verificare_date(n: int) -&amp;gt; bool:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Verifică dacă numărul n se află în intervalul [1, 1000000000].&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return 1 &amp;lt;= n &amp;lt;= 1000000000&lt;br /&gt;
&lt;br /&gt;
def cel_mai_mare_numar_dupa_eliminare(n: int) -&amp;gt; int:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Determină cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului n.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    numar_dupa_eliminare = -1 # inițializăm cu o valoare imposibilă&lt;br /&gt;
    for i in range(len(str(n))): # parcurgem cifrele numărului&lt;br /&gt;
        cifra_curenta = str(n)[i]&lt;br /&gt;
        numar_nou = int(str(n)[:i] + str(n)[i+1:]) # eliminăm cifra curentă&lt;br /&gt;
        if numar_nou &amp;gt; numar_dupa_eliminare:&lt;br /&gt;
            numar_dupa_eliminare = numar_nou # actualizăm numărul maxim&lt;br /&gt;
    return numar_dupa_eliminare&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Funcția principală.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți un număr natural: &amp;quot;))&lt;br /&gt;
    if verificare_date(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;Cel mai mare număr care se poate obține prin eliminarea unei singure cifre din scrierea numărului&amp;quot;, n, &amp;quot;este:&amp;quot;, cel_mai_mare_numar_dupa_eliminare(n))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;diff=5279</id>
		<title>1059 - Schimb Cifre</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;diff=5279"/>
		<updated>2023-04-28T18:54:47Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1059/schimbcifre]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Asupra lui se efectuează &#039;&#039;&#039;s&#039;&#039;&#039; serii de transformări, o serie constând în &#039;&#039;&#039;t&#039;&#039;&#039; transformări de genul: cifra de pe poziția &#039;&#039;&#039;i&#039;&#039;&#039; se interschimbă cu cifra de pe poziția &#039;&#039;&#039;j&#039;&#039;&#039;. Să se afişeze numărul obţinut după efectuarea celor &#039;&#039;&#039;s&#039;&#039;&#039; serii de transformări.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;s&#039;&#039;&#039; și &#039;&#039;&#039;t&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;t&#039;&#039;&#039; perechi de numere naturale, separate prin spații, fiecare pereche reprezentând pozițiile cifrelor care se interschimbă.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa pe ecran numărul obținut în urma efectuării celor &#039;&#039;&#039;s&#039;&#039;&#039; serii de transformări. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 1.000.000.000 &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; s &amp;amp;les; 2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; t &amp;amp;les; 10 &#039;&#039;&#039;&lt;br /&gt;
* prima cifră din scrierea lui &#039;&#039;&#039;n&#039;&#039;&#039; se află pe poziția 1&lt;br /&gt;
* numerele din cele &#039;&#039;&#039;t&#039;&#039;&#039; perechi reprezentând pozițiile cifrelor care se interschimbă sunt mai mici sau egale cu numărul cifrelor lui &#039;&#039;&#039;n&#039;&#039;&#039;&lt;br /&gt;
* cifra &#039;&#039;&#039;0&#039;&#039;&#039; nu va ajunge pe prima poziţie în urma unei interschimbări&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234 2 2&lt;br /&gt;
: 2 4&lt;br /&gt;
: 1 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 4132&lt;br /&gt;
 &lt;br /&gt;
== Explicație == &lt;br /&gt;
Se efectuează prima serie de transformări: &#039;&#039;&#039;1234 → 1432 → 2431&#039;&#039;&#039;&lt;br /&gt;
A doua serie de transformări: &#039;&#039;&#039;2431 → 2134 → 4132&#039;&#039;&#039;&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;
#1059&lt;br /&gt;
&lt;br /&gt;
from typing import List, Tuple&lt;br /&gt;
&lt;br /&gt;
# Funcție de verificare a datelor conform restricțiilor&lt;br /&gt;
def verificare_date(n: int, s: int, t: int, interschimbari: List[Tuple[int, int]]) -&amp;gt; bool:&lt;br /&gt;
    # Verificare restricție n&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000000000:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    # Verificare restricție s&lt;br /&gt;
    if s &amp;lt; 1 or s &amp;gt; 2000000000:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    # Verificare restricție t&lt;br /&gt;
    if t &amp;lt; 1 or t &amp;gt; 10:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    # Verificare restricție interschimbari&lt;br /&gt;
    for i, j in interschimbari:&lt;br /&gt;
        if i &amp;lt; 1 or i &amp;gt; len(str(n)) or j &amp;lt; 1 or j &amp;gt; len(str(n)):&lt;br /&gt;
            return False&lt;br /&gt;
&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Funcție pentru interschimbarea cifrelor la pozițiile i și j într-un număr&lt;br /&gt;
def interschimbare_cifre(numar: int, i: int, j: int) -&amp;gt; int:&lt;br /&gt;
    cifre = [int(cifra) for cifra in str(numar)]&lt;br /&gt;
    cifre[i-1], cifre[j-1] = cifre[j-1], cifre[i-1]&lt;br /&gt;
    return int(&amp;quot;&amp;quot;.join(map(str, cifre)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Funcția main&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # Citire date de intrare&lt;br /&gt;
    n, s, t = map(int, input(&amp;quot;Introduceti datele separate prin spatii: &amp;quot;).split())&lt;br /&gt;
&lt;br /&gt;
    interschimbari = []&lt;br /&gt;
    for i in range(t):&lt;br /&gt;
        i, j = map(int, input(&amp;quot;Introduceti datele separate prin spatii: &amp;quot;).split())&lt;br /&gt;
        interschimbari.append((i, j))&lt;br /&gt;
&lt;br /&gt;
    # Verificare date de intrare&lt;br /&gt;
    if not verificare_date(n, s, t, interschimbari):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    # Efectuare serii de transformări&lt;br /&gt;
    for k in range(s):&lt;br /&gt;
        for i, j in interschimbari:&lt;br /&gt;
            if i &amp;gt; j:&lt;br /&gt;
                i, j = j, i&lt;br /&gt;
            n = interschimbare_cifre(n, i, j)&lt;br /&gt;
&lt;br /&gt;
    # Afișare rezultat&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    print(n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2310_-_Saci&amp;diff=5278</id>
		<title>2310 - Saci</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2310_-_Saci&amp;diff=5278"/>
		<updated>2023-04-28T18:45:22Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2310/saci]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Pacală şi Tândală mergeau printr-o pădure. Într-un copac, ei au văzut o pasăre.&lt;br /&gt;
- Măi, Tândală, uite o pasăre! Hai s-o prindem, s-o frigem şi s-o mâncăm boiereşte, zise Păcală lingându-şi degetele.&lt;br /&gt;
- Că bine zici. Dar cum s-o mâncăm fără sare? Stai tu s-o păzeşti ca să nu zboare şi eu dau fuga în sat să aduc nişte sare, zise Tândală.&lt;br /&gt;
- Du-te în pivniţa mea şi acolo vei găsi &#039;&#039;&#039;n&#039;&#039;&#039; saci, pe fiecare sac vezi că e o etichetă pe care scrie un număr; dacă &#039;&#039;&#039;numărul are toate cifrele în ordine strict crescătoare, de la stânga la dreapta&#039;&#039;&#039;, înseamnă că acel sac conţine sare, altfel conţine zahăr. Încarcă în căruţă toţi sacii cu sare şi hai cu ei încoace până păzesc eu pasărea, zise Păcală.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ajutaţi-l pe Tândală să numere câţi saci cu sare trebuie să încarce în căruţă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
De pe prima linie a fişierului saci.in se citeşte un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; ce reprezintă numărul sacilor.&lt;br /&gt;
De pe următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii se citesc valori naturale, câte una de pe fiecare linie, reprezentând numărul scris pe eticheta unui sac.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi în fişierul &#039;&#039;&#039;saci.out&#039;&#039;&#039; se va afişa, pe prima linie, un număr natural ce reprezintă &#039;&#039;&#039;numărul de saci&#039;&#039;&#039; cu sare ce trebuie încărcaţi în căruţă. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 100 &#039;&#039;&#039;&lt;br /&gt;
* numărul scris pe fiecare sac este un număr natural nenul, cu cel mult &#039;&#039;&#039;8 cifre&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; interschimbari &amp;amp;les; 10 &#039;&#039;&#039;&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; saci.in&lt;br /&gt;
: 5&lt;br /&gt;
: 159&lt;br /&gt;
: 721&lt;br /&gt;
: 18&lt;br /&gt;
: 121&lt;br /&gt;
: 7&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
; saci.out&lt;br /&gt;
: 3&lt;br /&gt;
 &lt;br /&gt;
== Explicație == &lt;br /&gt;
Sunt 5 saci. Dintre numerele cu care sunt etichetaţi saci doar &#039;&#039;&#039;159&#039;&#039;&#039;, &#039;&#039;&#039;18&#039;&#039;&#039; şi &#039;&#039;&#039;7&#039;&#039;&#039;, au cifrele în ordine strict crescătoare de la stânga la dreapta.&lt;br /&gt;
Astfel doar &#039;&#039;&#039;3&#039;&#039;&#039; saci conţin sare şi trebuie încărcaţi în căruţă.&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;
#2310&lt;br /&gt;
&lt;br /&gt;
def validare_date(numar_saci: int, saci: List[int]) -&amp;gt; bool:&lt;br /&gt;
    # Verificăm dacă numărul de saci dat este egal cu numărul de saci citiți&lt;br /&gt;
    if numar_saci != len(saci):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    # Verificăm dacă toți sacii au valori întregi pozitive&lt;br /&gt;
    for sac in saci:&lt;br /&gt;
        if not isinstance(sac, int) or sac &amp;lt;= 0:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
            return False&lt;br /&gt;
&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def cub(numar_sac: int) -&amp;gt; bool:&lt;br /&gt;
    ok, p, c, cnt = True, 10, 0, 0&lt;br /&gt;
    while numar_sac != 0:&lt;br /&gt;
        if numar_sac % 10 &amp;gt;= p:&lt;br /&gt;
            ok = False&lt;br /&gt;
            break&lt;br /&gt;
        c += 1&lt;br /&gt;
        cnt += 1&lt;br /&gt;
        p = numar_sac % 10&lt;br /&gt;
        numar_sac //= 10&lt;br /&gt;
&lt;br /&gt;
    return ok&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema(numar_saci: int, saci: List[int]) -&amp;gt; int:&lt;br /&gt;
    cnt = 0&lt;br /&gt;
    for i in range(numar_saci):&lt;br /&gt;
        if cub(saci[i]):&lt;br /&gt;
            cnt += 1&lt;br /&gt;
&lt;br /&gt;
    return cnt&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # Citim datele de intrare din fișier&lt;br /&gt;
    with open(&amp;quot;saci.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        numar_saci = int(fin.readline())&lt;br /&gt;
        saci = []&lt;br /&gt;
        for i in range(numar_saci):&lt;br /&gt;
            sac = int(fin.readline())&lt;br /&gt;
            saci.append(sac)&lt;br /&gt;
&lt;br /&gt;
    # Validăm datele de intrare&lt;br /&gt;
    if not validare_date(numar_saci, saci):&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    # Rezolvăm problema&lt;br /&gt;
    rezultat = rezolva_problema(numar_saci, saci)&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatul în fișierul de ieșire&lt;br /&gt;
    with open(&amp;quot;saci.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(str(rezultat))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;validare_date&#039;&#039;&#039; verifică dacă datele de intrare sunt corecte, adică numărul de saci dat trebuie să fie egal cu numărul de saci citiți și dacă toți sacii au valori întregi pozitive.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;cub&#039;&#039;&#039; primește un număr natural și returnează o valoare booleană care indică dacă acest număr respectă restricțiile impuse de cerință. Restricțiile cer că fiecare cifră a numărului trebuie să fie mai mică decât cifra următoare.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;rezolva_problema&#039;&#039;&#039; primește numărul de saci și lista cu sacii și calculează câți dintre acești saci pot fi aranjați într-un șir astfel încât fiecare sac să aibă o greutate mai mică decât sacul următor. Funcția folosește funcția &#039;&#039;&#039;cub&#039;&#039;&#039; pentru a verifica fiecare sac în parte.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În funcția principală &#039;&#039;&#039;main&#039;&#039;&#039;, se citește fișierul de intrare &#039;&#039;&#039;saci.in&#039;&#039;&#039;, se validează datele, se calculează rezultatul și se scrie în fișierul de ieșire &#039;&#039;&#039;saci.out&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0295_%E2%80%93_Vecini&amp;diff=5277</id>
		<title>0295 – Vecini</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0295_%E2%80%93_Vecini&amp;diff=5277"/>
		<updated>2023-04-28T18:36:19Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/295/vecini]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un şir cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se verifice dacă există în şir elemente care să aibă ambii vecini de aceeaşi paritate cu el.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează mesajul &#039;&#039;&#039;DA&#039;&#039;&#039;, dacă există în şir elemente care să aibă ambii vecini de aceeaşi paritate cu el, respectiv &#039;&#039;&#039;NU&#039;&#039;&#039; în caz contrar. Dacă datele introduse nu sunt valide, se afișează mesajul: &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n &amp;amp;les; 100 &#039;&#039;&#039;&lt;br /&gt;
* elementele şirului vor avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 803 60 102 408 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: DA&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;
#0295&lt;br /&gt;
&lt;br /&gt;
def validare_date(n, lista):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for elem in lista:&lt;br /&gt;
        if elem &amp;lt; 0 or elem &amp;gt; 999999999:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def verificaVecinii(lista, pozitie):&lt;br /&gt;
    if (pozitie == 0 or lista[pozitie-1] % 2 == lista[pozitie] % 2) and (pozitie == len(lista)-1 or lista[pozitie+1] % 2 == lista[pozitie] % 2):&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__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți un numar: &amp;quot;))&lt;br /&gt;
    lista = list(map(int, input(&amp;quot;Introduceți numerele din lista cu spatiu intre ele: &amp;quot;).split()))&lt;br /&gt;
    validare_date(n, lista)&lt;br /&gt;
    gasit = False&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if verificaVecinii(lista, i):&lt;br /&gt;
            print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
            gasit = True&lt;br /&gt;
            break&lt;br /&gt;
    if not gasit:&lt;br /&gt;
        print(&amp;quot;NU&amp;quot;)&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;
Funcția &#039;&#039;&#039;validare_date(n, lista)&#039;&#039;&#039; validează datele introduse de utilizator. Ea primește ca parametri numărul de elemente din șir și lista de elemente, iar în cazul în care numărul de elemente nu se încadrează în intervalul [1, 100] sau cel puțin un element din listă depășește valoarea maximă permisă de 999999999, funcția afișează un mesaj de eroare și se termină executarea programului. În cazul în care toate datele sunt valide, se afișează mesajul &#039;&#039;&#039;Datele introduse sunt corecte.&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;verificaVecinii(lista, pozitie)&#039;&#039;&#039; primește ca parametri lista de numere și poziția elementului curent din listă și verifică dacă acesta are ambii vecini cu aceeași paritate cu el. Dacă da, returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În funcția principală &#039;&#039;&#039;__main__&#039;&#039;&#039;, se citește numărul de elemente din șir și lista de elemente de la tastatură folosind funcția &#039;&#039;&#039;input()&#039;&#039;&#039;. Lista de elemente este convertită într-o listă de întregi folosind funcția &#039;&#039;&#039;map()&#039;&#039;&#039; și metoda &#039;&#039;&#039;split()&#039;&#039;&#039; pentru a separa elementele citite prin spații. Apoi, funcția &#039;&#039;&#039;validare_date(n, lista)&#039;&#039;&#039; este apelată pentru a valida datele introduse.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În continuare, se parcurge lista cu ajutorul unui for și se verifică pentru fiecare element dacă are ambii vecini cu aceeași paritate cu el folosind funcția &#039;&#039;&#039;verificaVecinii(lista, i)&#039;&#039;&#039;. Dacă se găsește un astfel de element, se afișează mesajul &#039;&#039;&#039;DA&#039;&#039;&#039; și se setează variabila gasit pe &#039;&#039;&#039;True&#039;&#039;&#039;. Dacă nu se găsește niciun element cu această proprietate, se afișează mesajul &#039;&#039;&#039;NU&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3619_-_Gen_Nr_Patru_Cifre&amp;diff=5276</id>
		<title>3619 - Gen Nr Patru Cifre</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3619_-_Gen_Nr_Patru_Cifre&amp;diff=5276"/>
		<updated>2023-04-28T18:28:49Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3619/gen-nr-patru-cifre]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Dându-se cifrele &#039;&#039;&#039;c1&#039;&#039;&#039; și &#039;&#039;&#039;c2&#039;&#039;&#039;, să se afișeze toate numerele de patru cifre care îndeplinesc următoarele condiții:&lt;br /&gt;
&lt;br /&gt;
Cifra miilor este mai mare sau egală cu &#039;&#039;&#039;c1&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Cifra zecilor este mai mică sau egală cu &#039;&#039;&#039;c2&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Cifrele sutelor și unităților sunt egale și pare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură cifrele &#039;&#039;&#039;c1&#039;&#039;&#039; și &#039;&#039;&#039;c2&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa pe câte un rând, în ordine crescătoare, numerele de patru cifre care îndeplinesc condițiile. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 0 &amp;amp;les; c1, c2 &amp;amp;les; 9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 8 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 8000&lt;br /&gt;
: 8010&lt;br /&gt;
: 8202&lt;br /&gt;
: 8212&lt;br /&gt;
: 8404&lt;br /&gt;
: 8414&lt;br /&gt;
: 8606&lt;br /&gt;
: 8616&lt;br /&gt;
: 8808&lt;br /&gt;
: 8818&lt;br /&gt;
: 9000&lt;br /&gt;
: 9010&lt;br /&gt;
: 9202&lt;br /&gt;
: 9212&lt;br /&gt;
: 9404&lt;br /&gt;
: 9414&lt;br /&gt;
: 9606&lt;br /&gt;
: 9616&lt;br /&gt;
: 9808&lt;br /&gt;
: 9818&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;
&lt;br /&gt;
def validare_date(c1, c2): # Verificam daca c1 si c2 sunt in intervalul [0,9]&lt;br /&gt;
    if not (0 &amp;lt;= c1 &amp;lt;= 9) or not (0 &amp;lt;= c2 &amp;lt;= 9):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afisare_numere(c1, c2):&lt;br /&gt;
# Iteram prin cifrele miilor&lt;br /&gt;
    for m in range(c1, 10):&lt;br /&gt;
# Iteram prin cifrele sutelor, care sunt egale cu cifrele unitatilor si trebuie sa fie pare&lt;br /&gt;
        for s in range(0, 9, 2):&lt;br /&gt;
# Iteram prin cifrele zecilor&lt;br /&gt;
            for z in range(c2+1):&lt;br /&gt;
# Formam numarul de patru cifre cu cifra miilor, cifra sutelor, cifra zecilor si cifra unitatilor&lt;br /&gt;
                num = m*1000 + s*100 + z*10 + s&lt;br /&gt;
                print(num)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
# Citim cifrele c1 si c2 de la tastatura si le convertim la int&lt;br /&gt;
    cifra1, cifra2 = map(int, input(&amp;quot;Introduceti cifrele c1 si c2: &amp;quot;).split())&lt;br /&gt;
    if not validare_date(cifra1, cifra2):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    afisare_numere(cifra1, cifra2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0368_-_Nr_Pal&amp;diff=5275</id>
		<title>0368 - Nr Pal</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0368_-_Nr_Pal&amp;diff=5275"/>
		<updated>2023-04-28T18:23:30Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/368/nrpal]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau două numere naturale &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;. Determinati numărul de palindromuri cuprinse în intervalul determinat de cele două numere.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură două numere naturale &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează numărul &#039;&#039;&#039;p&#039;&#039;&#039;, reprezentând numărul de palindromuri cuprinse în intervalul determinat de &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n, m &amp;amp;les; 1.000.000&#039;&#039;&#039;&lt;br /&gt;
* nu este obligatoriu ca valorile citite să respecte condiția &#039;&#039;&#039;n &amp;amp;les; m&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 130 85&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 5&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;
#0368&lt;br /&gt;
&lt;br /&gt;
def este_palindrom(n):&lt;br /&gt;
    oglindit = 0&lt;br /&gt;
    aux = n&lt;br /&gt;
    while aux &amp;gt; 0:&lt;br /&gt;
        oglindit = oglindit * 10 + aux % 10&lt;br /&gt;
        aux //= 10&lt;br /&gt;
    return n == oglindit&lt;br /&gt;
&lt;br /&gt;
def numara_palindroame(n, m):&lt;br /&gt;
    if n &amp;gt; m:&lt;br /&gt;
        n, m = m, n&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for i in range(n, m + 1):&lt;br /&gt;
        if este_palindrom(i):&lt;br /&gt;
            contor += 1&lt;br /&gt;
    return contor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n, m = map(int, input(&amp;quot;Introduceti doua numere naturale: &amp;quot;).split())&lt;br /&gt;
    if n &amp;lt; 1 or m &amp;lt; 1 or n &amp;gt; 1000000 or m &amp;gt; 1000000:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        p = numara_palindroame(n, m)&lt;br /&gt;
        print(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;
Funcția &#039;&#039;&#039;este_palindrom(n)&#039;&#039;&#039; primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă acesta este un palindrom, respectiv &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar. Funcția folosește o buclă &#039;&#039;&#039;while&#039;&#039;&#039; pentru a inversa cifrele lui &#039;&#039;&#039;n&#039;&#039;&#039;, comparând apoi rezultatul cu &#039;&#039;&#039;n&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;numara_palindroame(n, m)&#039;&#039;&#039; primește două numere întregi &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; și returnează numărul de palindroame din intervalul [n, m]. Această funcție parcurge intervalul și, pentru fiecare număr, apelează funcția este_palindrom pentru a verifica dacă este palindrom, adăugând la un contor contor în caz afirmativ.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În blocul &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;:&#039;&#039;&#039; se citește de la tastatură două numere întregi &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, apoi se verifică dacă valorile introduse respectă restricțiile impuse prin verificarea valorilor lor. Dacă valorile sunt corecte, se afișează un mesaj corespunzător, se calculează numărul de palindroame prin apelul funcției &#039;&#039;&#039;numara_palindroame&#039;&#039;&#039; și se afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0280_-_Pal_Max&amp;diff=5274</id>
		<title>0280 - Pal Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0280_-_Pal_Max&amp;diff=5274"/>
		<updated>2023-04-28T18:15:48Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/280/palmax]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau mai multe numere naturale. Determinaţi cel mai mare număr palindrom aflat printre numerele date şi de câte ori apare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numere naturale, până la apariţia lui zero, care nu se ia în considerare.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul afișează numerele &#039;&#039;&#039;p&#039;&#039;&#039; şi &#039;&#039;&#039;c&#039;&#039;&#039;, numărul palindrom maxim şi numărul de apariţii, separate printr-un spaţiu, sau mesajul &#039;&#039;&#039;NU EXISTA&#039;&#039;&#039;, dacă printre numerele date nu există nici un număr palindrom. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* fiecare dintre numerele citite va avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 78 56 5665 98789 5665 88 98789 12521 5665 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 98789 2&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;
#0280&lt;br /&gt;
&lt;br /&gt;
def este_palindrom(numar):&lt;br /&gt;
    invers = 0&lt;br /&gt;
    copie = numar&lt;br /&gt;
    while copie &amp;gt; 0:&lt;br /&gt;
        ultima_cifra = copie % 10&lt;br /&gt;
        invers = invers * 10 + ultima_cifra&lt;br /&gt;
        copie //= 10&lt;br /&gt;
    return numar == invers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare_date_intrare(numere, lungime_maxima=9):&lt;br /&gt;
    if not numere:&lt;br /&gt;
        return False&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if not isinstance(numar, int) or numar &amp;lt;= 0 or numar &amp;gt; 10**lungime_maxima - 1:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema(numere):&lt;br /&gt;
    palindrom_maxim = None&lt;br /&gt;
    nr_aparitii = 0&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if este_palindrom(numar) and (palindrom_maxim is None or numar &amp;gt; palindrom_maxim):&lt;br /&gt;
            palindrom_maxim = numar&lt;br /&gt;
            nr_aparitii = 1&lt;br /&gt;
        elif numar == palindrom_maxim:&lt;br /&gt;
            nr_aparitii += 1&lt;br /&gt;
&lt;br /&gt;
    if palindrom_maxim is not None:&lt;br /&gt;
        print(palindrom_maxim, nr_aparitii)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numere = []&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            numar = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
            break&lt;br /&gt;
        if numar == 0:&lt;br /&gt;
            break&lt;br /&gt;
        numere.append(numar)&lt;br /&gt;
&lt;br /&gt;
    if validare_date_intrare(numere):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        rezolva_problema(numere)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;este_palindrom(numar)&#039;&#039;&#039; primește un număr și verifică dacă acesta este palindrom. În cadrul funcției, numărul este inversat prin adăugarea cifrelor din număr de la dreapta la stânga, pornind de la cifra unităților și până la cifra cea mai semnificativă. Dacă numărul inițial și cel inversat sunt egale, atunci funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;validare_date_intrare(numere, lungime_maxima=9)&#039;&#039;&#039; primește o listă de numere și verifică dacă acestea sunt numere naturale cu lungimea maximă admisă specificată (9 cifre în cazul de față). Funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă toate numerele din listă respectă condițiile și &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;rezolva_problema(numere)&#039;&#039;&#039; primește o listă de numere și găsește cel mai mare palindrom din listă și numărul de apariții ale acestuia în listă. Variabila palindrom_maxim inițial este None. Dacă un număr este palindrom și este mai mare decât &#039;&#039;&#039;palindrom_maxim&#039;&#039;&#039;, acesta devine &#039;&#039;&#039;palindrom_maxim&#039;&#039;&#039; și variabila &#039;&#039;&#039;nr_aparitii&#039;&#039;&#039; este resetată la 1. Dacă un alt număr palindrom este egal cu &#039;&#039;&#039;palindrom_maxim&#039;&#039;&#039;, &#039;&#039;&#039;nr_aparitii&#039;&#039;&#039; este incrementată cu 1. Dacă există cel puțin un palindrom în listă, funcția afișează &#039;&#039;&#039;palindrom_maxim&#039;&#039;&#039; și &#039;&#039;&#039;nr_aparitii&#039;&#039;&#039;. În caz contrar, afișează &#039;&#039;&#039;NU EXISTA&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În blocul &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;:&#039;&#039;&#039;, programul citește numere de la utilizator și încearcă să valideze datele de intrare. Dacă datele sunt valide, apoi se apelează funcția &#039;&#039;&#039;rezolva_problema(numere)&#039;&#039;&#039;. În caz contrar, se afișează un mesaj corespunzător.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4227_-_Cif_Tr&amp;diff=5273</id>
		<title>4227 - Cif Tr</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4227_-_Cif_Tr&amp;diff=5273"/>
		<updated>2023-04-28T17:55:45Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/4227/cif-tr]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Când adunăm două cifre &#039;&#039;&#039;cifra1&#039;&#039;&#039; și &#039;&#039;&#039;cifra2&#039;&#039;&#039;, obținem transport dacă &#039;&#039;&#039;cifra1&#039;&#039;&#039; + &#039;&#039;&#039;cifra2&#039;&#039;&#039; ≥ 10. Când adunăm două numere naturale, se poate obține chiar de mai multe ori transport. De exemplu, dacă adunăm 538 și 726, atunci obținem de două ori transport, prima oară când adunăm cifrele unităților, 8 + 6, a doua oară când adunăm cifrele sutelor, 5 + 7. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Se dau două numere naturale &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; care au același număr de cifre. Să se afișeze mesajul NU dacă adunând cele două numere cifră cu cifră nu obținem niciodată transport, sau mesajul DA, dacă obținem măcar o dată transport.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa mesajul &#039;&#039;&#039;NU&#039;&#039;&#039; dacă adunând cele două numere cifră cu cifră nu obținem niciodată transport, sau mesajul &#039;&#039;&#039;DA&#039;&#039;&#039;, dacă obținem măcar o dată transport. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n, m &amp;amp;les; 1.000.000.000&lt;br /&gt;
* numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; au același număr de cifre&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 538 726&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: DA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234 8765&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: NU&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;
#4227&lt;br /&gt;
&lt;br /&gt;
def verifica_date(numar1, numar2):&lt;br /&gt;
    if len(numar1) != len(numar2) or not numar1.isdigit() or not numar2.isdigit():&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def are_transport(numar1, numar2):&lt;br /&gt;
    for i in range(len(numar1)):&lt;br /&gt;
        suma = int(numar1[i]) + int(numar2[i])&lt;br /&gt;
        if suma &amp;gt;= 10:&lt;br /&gt;
            return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar1 = input(&amp;quot;Introduceti primul numar: &amp;quot;)&lt;br /&gt;
    numar2 = input(&amp;quot;Introduceti al doilea numar: &amp;quot;)&lt;br /&gt;
    if verifica_date(numar1, numar2):&lt;br /&gt;
        if are_transport(numar1, numar2):&lt;br /&gt;
            print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_date&#039;&#039;&#039; primește două argumente, &#039;&#039;&#039;numar1&#039;&#039;&#039; și &#039;&#039;&#039;numar2&#039;&#039;&#039;, și verifică dacă acestea au aceeași lungime și dacă fiecare cifră din cele două numere este un număr întreg. Dacă aceste condiții sunt îndeplinite, funcția afișează &amp;quot;Datele introduse sunt corecte.&amp;quot; și returnează valoarea True, în caz contrar, afișează &amp;quot;Datele introduse nu sunt corecte.&amp;quot; și returnează valoarea False.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;are_transport&#039;&#039;&#039; primește, de asemenea, două argumente, &#039;&#039;&#039;numar1&#039;&#039;&#039; și &#039;&#039;&#039;numar2&#039;&#039;&#039;, și verifică dacă există cel puțin un transport atunci când cele două numere sunt adunate cifră cu cifră. Pentru aceasta, funcția parcurge cifră cu cifră cele două numere și calculează suma. Dacă suma este mai mare sau egală cu 10, funcția returnează valoarea &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează valoarea &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În final, funcția &#039;&#039;&#039;main&#039;&#039;&#039; primește două valori de la utilizator prin intermediul funcției &#039;&#039;&#039;input&#039;&#039;&#039;, apelează funcția &#039;&#039;&#039;verifica_date&#039;&#039;&#039; pentru a verifica corectitudinea datelor, iar dacă acestea sunt corecte, apelează funcția &#039;&#039;&#039;are_transport&#039;&#039;&#039; pentru a verifica dacă există un transport în timpul adunării. În funcție de rezultatul obținut, programul afișează &#039;&#039;&#039;DA&#039;&#039;&#039; dacă există cel puțin un transport și &#039;&#039;&#039;NU&#039;&#039;&#039; dacă nu există niciun transport.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4227_-_Cif_Tr&amp;diff=5272</id>
		<title>4227 - Cif Tr</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4227_-_Cif_Tr&amp;diff=5272"/>
		<updated>2023-04-28T17:55:06Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/4227/cif-tr]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Când adunăm două cifre &#039;&#039;&#039;cifra1&#039;&#039;&#039; și &#039;&#039;&#039;cifra2&#039;&#039;&#039;, obținem transport dacă &#039;&#039;&#039;cifra1&#039;&#039;&#039; + &#039;&#039;&#039;cifra2&#039;&#039;&#039; ≥ 10. Când adunăm două numere naturale, se poate obține chiar de mai multe ori transport. De exemplu, dacă adunăm 538 și 726, atunci obținem de două ori transport, prima oară când adunăm cifrele unităților, 8 + 6, a doua oară când adunăm cifrele sutelor, 5 + 7. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Se dau două numere naturale &#039;&#039;&#039;cifra1&#039;&#039;&#039; și &#039;&#039;&#039;cifra2&#039;&#039;&#039; care au același număr de cifre. Să se afișeze mesajul NU dacă adunând cele două numere cifră cu cifră nu obținem niciodată transport, sau mesajul DA, dacă obținem măcar o dată transport.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa mesajul &#039;&#039;&#039;NU&#039;&#039;&#039; dacă adunând cele două numere cifră cu cifră nu obținem niciodată transport, sau mesajul &#039;&#039;&#039;DA&#039;&#039;&#039;, dacă obținem măcar o dată transport. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1 &amp;amp;les; n, m &amp;amp;les; 1.000.000.000&lt;br /&gt;
* numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039; au același număr de cifre&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 538 726&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: DA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234 8765&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: NU&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;
#4227&lt;br /&gt;
&lt;br /&gt;
def verifica_date(numar1, numar2):&lt;br /&gt;
    if len(numar1) != len(numar2) or not numar1.isdigit() or not numar2.isdigit():&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def are_transport(numar1, numar2):&lt;br /&gt;
    for i in range(len(numar1)):&lt;br /&gt;
        suma = int(numar1[i]) + int(numar2[i])&lt;br /&gt;
        if suma &amp;gt;= 10:&lt;br /&gt;
            return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar1 = input(&amp;quot;Introduceti primul numar: &amp;quot;)&lt;br /&gt;
    numar2 = input(&amp;quot;Introduceti al doilea numar: &amp;quot;)&lt;br /&gt;
    if verifica_date(numar1, numar2):&lt;br /&gt;
        if are_transport(numar1, numar2):&lt;br /&gt;
            print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verifica_date&#039;&#039;&#039; primește două argumente, &#039;&#039;&#039;numar1&#039;&#039;&#039; și &#039;&#039;&#039;numar2&#039;&#039;&#039;, și verifică dacă acestea au aceeași lungime și dacă fiecare cifră din cele două numere este un număr întreg. Dacă aceste condiții sunt îndeplinite, funcția afișează &amp;quot;Datele introduse sunt corecte.&amp;quot; și returnează valoarea True, în caz contrar, afișează &amp;quot;Datele introduse nu sunt corecte.&amp;quot; și returnează valoarea False.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;are_transport&#039;&#039;&#039; primește, de asemenea, două argumente, &#039;&#039;&#039;numar1&#039;&#039;&#039; și &#039;&#039;&#039;numar2&#039;&#039;&#039;, și verifică dacă există cel puțin un transport atunci când cele două numere sunt adunate cifră cu cifră. Pentru aceasta, funcția parcurge cifră cu cifră cele două numere și calculează suma. Dacă suma este mai mare sau egală cu 10, funcția returnează valoarea &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează valoarea &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În final, funcția &#039;&#039;&#039;main&#039;&#039;&#039; primește două valori de la utilizator prin intermediul funcției &#039;&#039;&#039;input&#039;&#039;&#039;, apelează funcția &#039;&#039;&#039;verifica_date&#039;&#039;&#039; pentru a verifica corectitudinea datelor, iar dacă acestea sunt corecte, apelează funcția &#039;&#039;&#039;are_transport&#039;&#039;&#039; pentru a verifica dacă există un transport în timpul adunării. În funcție de rezultatul obținut, programul afișează &#039;&#039;&#039;DA&#039;&#039;&#039; dacă există cel puțin un transport și &#039;&#039;&#039;NU&#039;&#039;&#039; dacă nu există niciun transport.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0170_-_Cif_Max_Min&amp;diff=5271</id>
		<title>0170 - Cif Max Min</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0170_-_Cif_Max_Min&amp;diff=5271"/>
		<updated>2023-04-28T17:46:00Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/170/cifmaxmin]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care să determine suma dintre cea mai mică şi cea mai mare cifră ale unui număr natural citit de la tastatură.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afişa pe ecran suma dintre cea mai mică şi cea mai mare cifră ale numărului citit. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* numărul citit va fi mai mic decât &#039;&#039;&#039;2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2745&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 9&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;
&lt;br /&gt;
# Verifica daca numarul dat ca argument este mai mic decat 2 miliarde&lt;br /&gt;
def verificare_date(numar):&lt;br /&gt;
    if numar &amp;gt;= 2000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
# Calculeaza suma dintre cel mai mic si cel mai mare cifra din numar&lt;br /&gt;
def determina_suma_min_max(numar):&lt;br /&gt;
    minim = min(str(numar)) # Converteste numarul in string si gaseste cea mai mica cifra&lt;br /&gt;
    maxim = max(str(numar)) # Converteste numarul in string si gaseste cea mai mare cifra&lt;br /&gt;
    return int(minim) + int(maxim) # Converteste cele doua cifre in int si calculeaza suma lor&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = int(input(&amp;quot;Introduceți un număr: &amp;quot;)) # Primeste de la utilizator un numar intreg&lt;br /&gt;
    if verificare_date(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        suma = determina_suma_min_max(numar) # Calculeaza suma dintre cel mai mic si cel mai mare cifra din numar&lt;br /&gt;
        print(suma)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3251_-_Asociat_Par&amp;diff=5270</id>
		<title>3251 - Asociat Par</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3251_-_Asociat_Par&amp;diff=5270"/>
		<updated>2023-04-28T17:42:09Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3251/asociat-par]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Se numește număr par asociat unui număr x numărul obținut din cifrele pare ale lui x luate în ordinea în care apar ele în x. De exemplu, numărul 3246456 are ca număr par asociat pe 24646, iar 37030 pe 0. Dacă numărul nu are cifre pare, atunci el nu are număr par asociat. Numărul 3731 nu are număr par asociat.&lt;br /&gt;
Se cere să se determine câte dintre cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite au numărul par asociat palindrom. Se numește palindom un număr care citit de la dreapta la stânga are aceeași valoare.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa numărul &#039;&#039;&#039;c&#039;&#039;&#039;, reprezentând numărul de numere citite care au numărul asociat palindrom. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les;100 &#039;&#039;&#039;&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât 1.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 45456 474 201102 2352345 234&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 2&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;
#3251&lt;br /&gt;
&lt;br /&gt;
def este_palindrom(num):&lt;br /&gt;
    return str(num) == str(num)[::-1]&lt;br /&gt;
&lt;br /&gt;
def verifica_date(n, numere):&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar &amp;gt;= 1000000000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def numere_cu_numar_par_asociat_palindrom(n, numere):&lt;br /&gt;
    citite = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = str(numere[i])&lt;br /&gt;
        even_digits = [digit for digit in x if int(digit) % 2 == 0]&lt;br /&gt;
        even_num = int(&amp;quot;&amp;quot;.join(even_digits)) if even_digits else None&lt;br /&gt;
        if even_num and este_palindrom(even_num):&lt;br /&gt;
            citite += 1&lt;br /&gt;
    return citite&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de numere: &amp;quot;))&lt;br /&gt;
    numere = list(map(int, input(&amp;quot;Introduceți cele {} numere: &amp;quot;.format(n)).split()))&lt;br /&gt;
    if verifica_date(n, numere):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(numere_cu_numar_par_asociat_palindrom(n, numere))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
Funcția &#039;&#039;&#039;este_palindrom(num)&#039;&#039;&#039; primește un număr și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă numărul este palindrom (adică poate fi citit în același fel în ambele direcții), altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;verifica_date(n, numere)&#039;&#039;&#039; primește un număr și o listă de numere și verifică dacă niciuna dintre numerele din listă nu este mai mare sau egală cu 1000000000. Dacă cel puțin un număr din listă este mai mare sau egal cu 1000000000, funcția returnează &#039;&#039;&#039;False&#039;&#039;&#039;. Dacă toate numerele sunt mai mici decât 1000000000, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;numere_cu_numar_par_asociat_palindrom(n, numere)&#039;&#039;&#039; primește un număr și o listă de numere și returnează numărul de numere din listă care au un număr par asociat care este palindrom. Mai întâi, funcția transformă fiecare număr într-un șir de caractere, apoi extrage cifrele pare din fiecare șir și le transformă înapoi într-un număr. Dacă numărul obținut din cifrele pare este palindrom, acesta este numărat și funcția continuă la următorul număr din listă.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;main()&#039;&#039;&#039; primește un număr și o listă de numere de la utilizator și apelează &#039;&#039;&#039;verifica_date(n, numere)&#039;&#039;&#039; pentru a verifica validitatea datelor introduse. Dacă datele sunt corecte, funcția afișează numărul de numere din listă care au un număr par asociat care este palindrom. Dacă datele nu sunt corecte, funcția afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3251_-_Asociat_Par&amp;diff=5269</id>
		<title>3251 - Asociat Par</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3251_-_Asociat_Par&amp;diff=5269"/>
		<updated>2023-04-28T17:41:35Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3251/asociat-par]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Se numește număr par asociat unui număr x numărul obținut din cifrele pare ale lui x luate în ordinea în care apar ele în x. De exemplu, numărul 3246456 are ca număr par asociat pe 24646, iar 37030 pe 0. Dacă numărul nu are cifre pare, atunci el nu are număr par asociat. Numărul 3731 nu are număr par asociat.&lt;br /&gt;
Se cere să se determine câte dintre cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite au numărul par asociat palindrom. Se numește palindom un număr care citit de la dreapta la stânga are aceeași valoare.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa numărul &#039;&#039;&#039;c&#039;&#039;&#039;, reprezentând numărul de numere citite care au numărul asociat palindrom. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les;100 &#039;&#039;&#039;&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât 1.000.000.000&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 45456 474 201102 2352345 234&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&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;
#3251&lt;br /&gt;
&lt;br /&gt;
def este_palindrom(num):&lt;br /&gt;
    return str(num) == str(num)[::-1]&lt;br /&gt;
&lt;br /&gt;
def verifica_date(n, numere):&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar &amp;gt;= 1000000000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def numere_cu_numar_par_asociat_palindrom(n, numere):&lt;br /&gt;
    citite = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = str(numere[i])&lt;br /&gt;
        even_digits = [digit for digit in x if int(digit) % 2 == 0]&lt;br /&gt;
        even_num = int(&amp;quot;&amp;quot;.join(even_digits)) if even_digits else None&lt;br /&gt;
        if even_num and este_palindrom(even_num):&lt;br /&gt;
            citite += 1&lt;br /&gt;
    return citite&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de numere: &amp;quot;))&lt;br /&gt;
    numere = list(map(int, input(&amp;quot;Introduceți cele {} numere: &amp;quot;.format(n)).split()))&lt;br /&gt;
    if verifica_date(n, numere):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(numere_cu_numar_par_asociat_palindrom(n, numere))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
Funcția &#039;&#039;&#039;este_palindrom(num)&#039;&#039;&#039; primește un număr și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă numărul este palindrom (adică poate fi citit în același fel în ambele direcții), altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;verifica_date(n, numere)&#039;&#039;&#039; primește un număr și o listă de numere și verifică dacă niciuna dintre numerele din listă nu este mai mare sau egală cu 1000000000. Dacă cel puțin un număr din listă este mai mare sau egal cu 1000000000, funcția returnează &#039;&#039;&#039;False&#039;&#039;&#039;. Dacă toate numerele sunt mai mici decât 1000000000, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;numere_cu_numar_par_asociat_palindrom(n, numere)&#039;&#039;&#039; primește un număr și o listă de numere și returnează numărul de numere din listă care au un număr par asociat care este palindrom. Mai întâi, funcția transformă fiecare număr într-un șir de caractere, apoi extrage cifrele pare din fiecare șir și le transformă înapoi într-un număr. Dacă numărul obținut din cifrele pare este palindrom, acesta este numărat și funcția continuă la următorul număr din listă.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;main()&#039;&#039;&#039; primește un număr și o listă de numere de la utilizator și apelează &#039;&#039;&#039;verifica_date(n, numere)&#039;&#039;&#039; pentru a verifica validitatea datelor introduse. Dacă datele sunt corecte, funcția afișează numărul de numere din listă care au un număr par asociat care este palindrom. Dacă datele nu sunt corecte, funcția afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2223_-_Cifre_004&amp;diff=5268</id>
		<title>2223 - Cifre 004</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2223_-_Cifre_004&amp;diff=5268"/>
		<updated>2023-04-28T17:32:57Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2223/cifre004]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă &#039;&#039;&#039;n&#039;&#039;&#039; număr natural. Aflaţi cel mai mare număr natural care are numărul de cifre şi suma cifrelor egale cu suma cifrelor lui &#039;&#039;&#039;n&#039;&#039;&#039;.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa cel mai mare număr natural care are numărul de cifre şi suma cifrelor egale cu suma cifrelor lui &#039;&#039;&#039;n&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les;2.000.000.000 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 203&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 50000&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;
#2223&lt;br /&gt;
&lt;br /&gt;
def verificare_date(n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 2000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def cel_mai_mare_numar(n):&lt;br /&gt;
    if not verificare_date(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    s = sum(int(i) for i in str(n))&lt;br /&gt;
    k = s // 9&lt;br /&gt;
    rest = s % 9&lt;br /&gt;
    if rest == 0:&lt;br /&gt;
        print(int(&amp;quot;9&amp;quot; * k))&lt;br /&gt;
    else:&lt;br /&gt;
        print(int(&amp;quot;9&amp;quot; * k + str(rest) + &amp;quot;0&amp;quot; * (len(str(n)) - k - 1)))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
    cel_mai_mare_numar(n)&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;
Funcția &#039;&#039;&#039;verificare_date(n)&#039;&#039;&#039; primește ca parametru numărul &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă acesta este cuprins între 1 și 2.000.000.000, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;cel_mai_mare_numar(n)&#039;&#039;&#039; primește ca parametru un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Mai întâi se verifică dacă &#039;&#039;&#039;n&#039;&#039;&#039; este valid (folosind funcția verificare_date(n)). Dacă nu este valid, se afișează un mesaj corespunzător și funcția se oprește. În caz contrar, se afișează un mesaj corespunzător. Se calculează suma cifrelor lui &#039;&#039;&#039;n&#039;&#039;&#039; (folosind expresia sum(int(i) for i in str(n))). Se determină câte cifre de 9 poate avea numărul căutat (folosind expresia s // 9, unde s este suma cifrelor lui n). Se calculează restul cifrelor necesare prin adăugarea unor cifre 0 (folosind expresia int(&amp;quot;9&amp;quot; * k + str(rest) + &amp;quot;0&amp;quot; * (len(str(n)) - k - 1)), unde &#039;&#039;&#039;k&#039;&#039;&#039; este numărul de cifre de 9 și &#039;&#039;&#039;rest&#039;&#039;&#039; este restul cifrelor necesare).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, apoi apelează funcția &#039;&#039;&#039;cel_mai_mare_numar(n)&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2223_-_Cifre_004&amp;diff=5267</id>
		<title>2223 - Cifre 004</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2223_-_Cifre_004&amp;diff=5267"/>
		<updated>2023-04-28T17:30:48Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2223/cifre004]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă &#039;&#039;&#039;n&#039;&#039;&#039; număr natural. Aflaţi cel mai mare număr natural care are numărul de cifre şi suma cifrelor egale cu suma cifrelor lui &#039;&#039;&#039;n&#039;&#039;&#039;.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa cel mai mare număr natural care are numărul de cifre şi suma cifrelor egale cu suma cifrelor lui &#039;&#039;&#039;n&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les;2.000.000.000 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 203&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: 50000&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;
#2223&lt;br /&gt;
&lt;br /&gt;
def verificare_date(n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 2000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def cel_mai_mare_numar(n):&lt;br /&gt;
    if not verificare_date(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    s = sum(int(i) for i in str(n))&lt;br /&gt;
    k = s // 9&lt;br /&gt;
    rest = s % 9&lt;br /&gt;
    if rest == 0:&lt;br /&gt;
        print(int(&amp;quot;9&amp;quot; * k))&lt;br /&gt;
    else:&lt;br /&gt;
        print(int(&amp;quot;9&amp;quot; * k + str(rest) + &amp;quot;0&amp;quot; * (len(str(n)) - k - 1)))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
    cel_mai_mare_numar(n)&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;
Funcția &#039;&#039;&#039;verificare_date(n)&#039;&#039;&#039; primește ca parametru numărul &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă acesta este cuprins între 1 și 2.000.000.000, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;cel_mai_mare_numar(n)&#039;&#039;&#039; primește ca parametru numărul &#039;&#039;&#039;n&#039;&#039;&#039; și, dacă datele sunt corecte (verificate cu ajutorul funcției verificare_date(n)), calculează suma cifrelor lui n, determină câte cifre de 9 poate avea numărul căutat și calculează restul cifrelor necesare prin adăugarea unor cifre 0.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, apoi apelează funcția cel_mai_mare_numar(n).&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4215_-_Alipit&amp;diff=5266</id>
		<title>4215 - Alipit</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4215_-_Alipit&amp;diff=5266"/>
		<updated>2023-04-28T17:25:28Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/4215/alipit]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se verifice dacă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; este “alipit”. &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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa mesajul &#039;&#039;&#039;DA&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este “alipit”, sau mesajul &#039;&#039;&#039;NU&#039;&#039;&#039; în caz contrar . În cazul în care datele introduse nu sunt corecte, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les;100.000.000.000 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1212&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele introduse sunt corecte.&lt;br /&gt;
: DA&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;
#4215&lt;br /&gt;
&lt;br /&gt;
def verificare_numar(n):&lt;br /&gt;
    if not isinstance(n, int) or n &amp;lt; 1 or n &amp;gt; 100000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def este_alipit(n):&lt;br /&gt;
    numar = str(n)&lt;br /&gt;
    lungime = len(numar)&lt;br /&gt;
    &lt;br /&gt;
    # parcurgem toate lungimile posibile pentru un șir repetat&lt;br /&gt;
    for lungime_subsir in range(1, lungime // 2 + 1):&lt;br /&gt;
        # extragem șirul repetat&lt;br /&gt;
        subsir = numar[:lungime_subsir]&lt;br /&gt;
        # verificam daca șirul se poate repeta pentru a forma numarul dat&lt;br /&gt;
        if subsir * (lungime // lungime_subsir) + subsir[:lungime % lungime_subsir] == numar:&lt;br /&gt;
            return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
    if verificare_numar(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        if este_alipit(n):&lt;br /&gt;
            print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
Funcția &#039;&#039;&#039;verificare_numar(n)&#039;&#039;&#039; primește ca parametru un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr natural între 1 și 100000000000 și &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar. Aceasta se realizează prin verificarea dacă &#039;&#039;&#039;n&#039;&#039;&#039; nu este un număr întreg (utilizând funcția isinstance) sau dacă este mai mic decât 1 sau mai mare decât 100000000000.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;este_alipit(n)&#039;&#039;&#039; primește ca parametru un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este &amp;quot;alipit&amp;quot; și &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar. Pentru a verifica acest lucru, se convertește numărul la un șir de caractere (numar = str(n)) și se calculează lungimea acestuia (lungime = len(numar)). Se parcurg toate lungimile posibile pentru un șir repetat, începând cu lungimea 1 și mergând până la jumătate din lungimea totală a șirului (for lungime_subsir in range(1, lungime // 2 + 1):). Se extrage șirul repetat (subsir = numar[:lungime_subsir]) și se verifică dacă acesta poate fi repetat de un număr de ori astfel încât să formeze numărul dat (if subsir * (lungime // lungime_subsir) + subsir[:lungime % lungime_subsir] == numar:). În caz afirmativ, se returnează True. În caz contrar, se continuă parcurgerea lungimilor posibile pentru șirul repetat până la epuizarea acestora, moment în care se returnează False.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală se ocupă de interacțiunea cu utilizatorul și afișează rezultatul final în funcție de valorile returnate de funcțiile anterioare. Se citeste numarul de la tastatură (n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))) și se verifică dacă datele introduse sunt corecte folosind funcția &#039;&#039;&#039;verificare_numar(n)&#039;&#039;&#039;. Dacă datele sunt corecte, se afișează mesajul corespunzător (print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)) și se verifică dacă numărul este &amp;quot;alipit&amp;quot; folosind funcția este_alipit(n). În funcție de rezultatul obținut, se afișează mesajul &#039;&#039;&#039;&amp;quot;DA&amp;quot;&#039;&#039;&#039; sau &#039;&#039;&#039;&amp;quot;NU&amp;quot;&#039;&#039;&#039;. Dacă datele introduse nu sunt corecte, se afișează mesajul corespunzător (`print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4215_-_Alipit&amp;diff=5265</id>
		<title>4215 - Alipit</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4215_-_Alipit&amp;diff=5265"/>
		<updated>2023-04-28T17:25:09Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/4215/alipit]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se verifice dacă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; este “alipit”. &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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa mesajul &#039;&#039;&#039;DA&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este “alipit”, sau mesajul &#039;&#039;&#039;NU&#039;&#039;&#039; în caz contrar . În cazul în care datele introduse nu sunt corecte, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les;100.000.000.000 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1212&lt;br /&gt;
; Ieșire&lt;br /&gt;
: &amp;quot;Datele introduse sunt corecte.&amp;quot;&lt;br /&gt;
: DA&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;
#4215&lt;br /&gt;
&lt;br /&gt;
def verificare_numar(n):&lt;br /&gt;
    if not isinstance(n, int) or n &amp;lt; 1 or n &amp;gt; 100000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def este_alipit(n):&lt;br /&gt;
    numar = str(n)&lt;br /&gt;
    lungime = len(numar)&lt;br /&gt;
    &lt;br /&gt;
    # parcurgem toate lungimile posibile pentru un șir repetat&lt;br /&gt;
    for lungime_subsir in range(1, lungime // 2 + 1):&lt;br /&gt;
        # extragem șirul repetat&lt;br /&gt;
        subsir = numar[:lungime_subsir]&lt;br /&gt;
        # verificam daca șirul se poate repeta pentru a forma numarul dat&lt;br /&gt;
        if subsir * (lungime // lungime_subsir) + subsir[:lungime % lungime_subsir] == numar:&lt;br /&gt;
            return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
    if verificare_numar(n):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        if este_alipit(n):&lt;br /&gt;
            print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
Funcția &#039;&#039;&#039;verificare_numar(n)&#039;&#039;&#039; primește ca parametru un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr natural între 1 și 100000000000 și &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar. Aceasta se realizează prin verificarea dacă &#039;&#039;&#039;n&#039;&#039;&#039; nu este un număr întreg (utilizând funcția isinstance) sau dacă este mai mic decât 1 sau mai mare decât 100000000000.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;este_alipit(n)&#039;&#039;&#039; primește ca parametru un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este &amp;quot;alipit&amp;quot; și &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar. Pentru a verifica acest lucru, se convertește numărul la un șir de caractere (numar = str(n)) și se calculează lungimea acestuia (lungime = len(numar)). Se parcurg toate lungimile posibile pentru un șir repetat, începând cu lungimea 1 și mergând până la jumătate din lungimea totală a șirului (for lungime_subsir in range(1, lungime // 2 + 1):). Se extrage șirul repetat (subsir = numar[:lungime_subsir]) și se verifică dacă acesta poate fi repetat de un număr de ori astfel încât să formeze numărul dat (if subsir * (lungime // lungime_subsir) + subsir[:lungime % lungime_subsir] == numar:). În caz afirmativ, se returnează True. În caz contrar, se continuă parcurgerea lungimilor posibile pentru șirul repetat până la epuizarea acestora, moment în care se returnează False.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală se ocupă de interacțiunea cu utilizatorul și afișează rezultatul final în funcție de valorile returnate de funcțiile anterioare. Se citeste numarul de la tastatură (n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))) și se verifică dacă datele introduse sunt corecte folosind funcția &#039;&#039;&#039;verificare_numar(n)&#039;&#039;&#039;. Dacă datele sunt corecte, se afișează mesajul corespunzător (print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)) și se verifică dacă numărul este &amp;quot;alipit&amp;quot; folosind funcția este_alipit(n). În funcție de rezultatul obținut, se afișează mesajul &#039;&#039;&#039;&amp;quot;DA&amp;quot;&#039;&#039;&#039; sau &#039;&#039;&#039;&amp;quot;NU&amp;quot;&#039;&#039;&#039;. Dacă datele introduse nu sunt corecte, se afișează mesajul corespunzător (`print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2221_-_Cifre_003&amp;diff=5264</id>
		<title>2221 - Cifre 003</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2221_-_Cifre_003&amp;diff=5264"/>
		<updated>2023-04-28T17:14:34Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2221/cifre003]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Să se afle câte dintre numerele obținute din &#039;&#039;&#039;n&#039;&#039;&#039; prin ștergerea unei cifre, sunt divizibile cu 3.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele introduse sunt corecte.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa numărul numerelor obţinute din &#039;&#039;&#039;n&#039;&#039;&#039; prin ștergerea unei cifre, care sunt divizibile cu 3. În caz contrar, se va afișa pe ecran mesajul  &#039;&#039;&#039;&amp;quot;Datele introduse nu sunt corecte.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n &amp;amp;les;2.000.000.000 &lt;br /&gt;
*  dacă &#039;&#039;&#039;n&#039;&#039;&#039; are o cifră, prin ştergerea unei cifre el devine 0&lt;br /&gt;
* dacă prin ştergerea unei cifre numărul rămas începe cu 0, zerourile de la început se elimină&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 23701&lt;br /&gt;
; Ieșire&lt;br /&gt;
: &amp;quot;Datele introduse sunt corecte.&amp;quot;&lt;br /&gt;
: 2&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Prin eliminarea cifrei 1 se obţine numărul 2370 divizibil cu 3, iar prin eliminarea cifrei 7 se obţine 2301 divizibil cu 3.&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;
&lt;br /&gt;
def este_numar_valid(numar):&lt;br /&gt;
    if numar.isdigit() and int(numar) &amp;gt;= 1 and int(numar) &amp;lt;= 2000000000:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
def numar_divizibile_cu_3(numar):&lt;br /&gt;
    numere_divizibile_cu_3 = 0&lt;br /&gt;
    for i in range(len(numar)):&lt;br /&gt;
        cifra = int(numar[i])&lt;br /&gt;
        numar_fara_cifra = numar[:i] + numar[i + 1:]&lt;br /&gt;
        if int(numar_fara_cifra) % 3 == 0:&lt;br /&gt;
            numere_divizibile_cu_3 += 1&lt;br /&gt;
    return numere_divizibile_cu_3&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceti numarul: &amp;quot;).strip()&lt;br /&gt;
    if este_numar_valid(numar):&lt;br /&gt;
        print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
        print(numar_divizibile_cu_3(numar))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele introduse nu sunt corecte.&amp;quot;)&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;
Funcția &#039;&#039;&#039;este_numar_valid(numar)&#039;&#039;&#039; verifică dacă &#039;&#039;&#039;numar&#039;&#039;&#039; este un număr natural valid, adică este format doar din cifre și este în intervalul [1, 2000000000]. Dacă numărul este valid, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;numar_divizibile_cu_3(numar)&#039;&#039;&#039; primește ca parametru un număr și determină câte dintre numerele obținute prin ștergerea unei cifre sunt divizibile cu 3. Aceasta folosește o buclă for pentru a itera prin fiecare cifră din numar, elimină cifra curentă și verifică dacă numărul obținut este divizibil cu 3. Dacă acesta este divizibil cu 3, funcția incrementează un contor &#039;&#039;&#039;numere_divizibile_cu_3&#039;&#039;&#039;. Funcția returnează numărul de numere divizibile cu 3.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția principală primește un număr de la utilizator folosind funcția input(). Aceasta verifică dacă numărul este valid folosind funcția &#039;&#039;&#039;este_numar_valid(numar)&#039;&#039;&#039;. Dacă numărul este valid, se afișează un mesaj de confirmare și numărul de numere divizibile cu 3 prin apelul funcției &#039;&#039;&#039;numar_divizibile_cu_3(numar)&#039;&#039;&#039;. Dacă numărul nu este valid, se afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5162</id>
		<title>1566 - Cif Sort</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5162"/>
		<updated>2023-04-28T06:00:40Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1566/cifsort]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se da numarul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Afisati numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc.&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;
Dacă datele sunt introduse corect, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi se va afișa numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc. În caz contrar, se va afișa pe ecran. &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;10 &amp;amp;les; n &amp;amp;les; 99.999.999&#039;&#039;&#039;&lt;br /&gt;
*  &#039;&#039;&#039;n&#039;&#039;&#039; are un numar par de cifre.&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 123456&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele au fost introduse corect.&lt;br /&gt;
: 214365&lt;br /&gt;
== Explicație ==&lt;br /&gt;
1 a fost inversat cu 2, 3 cu 4, iar 5 cu 6.&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;
#1566&lt;br /&gt;
&lt;br /&gt;
def verificare(numar):&lt;br /&gt;
    if len(numar) % 2 != 0:&lt;br /&gt;
        return False&lt;br /&gt;
    try:&lt;br /&gt;
        int(numar)&lt;br /&gt;
        return True&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def rezolvare(numar):&lt;br /&gt;
    invers = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(0, len(numar), 2):&lt;br /&gt;
        invers += numar[i+1]&lt;br /&gt;
        invers += numar[i]&lt;br /&gt;
    return int(invers)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceti un numar cu un numar par de cifre: &amp;quot;)&lt;br /&gt;
    if verificare(numar):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        print(rezolvare(numar))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&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 cod ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; verifică dacă numărul are un număr par de cifre și dacă toate cifrele sunt cifre întregi. Dacă aceste condiții sunt îndeplinite, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; primește numărul și creează un șir de caractere în care cifrele inversează poziția. Algoritmul funcției merge prin număr începând cu prima cifră și adăugând în noul șir caracterul de pe poziția impară și apoi caracterul de pe poziția pară, adică inversând poziția acestora. Funcția returnează numărul întors.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Instrucțiunea &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;:&#039;&#039;&#039; citește numărul de la tastatură, verifică dacă datele sunt introduse corect folosind funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; și afișează rezultatul apelând funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; în cazul în care datele sunt corecte sau afișează mesajul &#039;&#039;&#039;&amp;quot;Datele au fost introduse corect.&amp;quot;&#039;&#039;&#039; în caz contrar, se afișează mesajul &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect&amp;quot;&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5161</id>
		<title>1566 - Cif Sort</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5161"/>
		<updated>2023-04-28T06:00:28Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1566/cifsort]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se da numarul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Afisati numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc.&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;
Dacă datele sunt introduse corect, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi se va afișa numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc. În caz contrar, se va afișa pe ecran. &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;10 &amp;amp;les; n &amp;amp;les; 99.999.999&#039;&#039;&#039;&lt;br /&gt;
*  &#039;&#039;&#039;n&#039;&#039;&#039; are un numar par de cifre.&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 123456&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele au fost introduse corect.&lt;br /&gt;
: 214365&lt;br /&gt;
== Explicație ==&lt;br /&gt;
1 a fost inversat cu 2, 3 cu 4, iar 5 cu 6.&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;
#1566&lt;br /&gt;
&lt;br /&gt;
def verificare(numar):&lt;br /&gt;
    if len(numar) % 2 != 0:&lt;br /&gt;
        return False&lt;br /&gt;
    try:&lt;br /&gt;
        int(numar)&lt;br /&gt;
        return True&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def rezolvare(numar):&lt;br /&gt;
    invers = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(0, len(numar), 2):&lt;br /&gt;
        invers += numar[i+1]&lt;br /&gt;
        invers += numar[i]&lt;br /&gt;
    return int(invers)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceti un numar cu un numar par de cifre: &amp;quot;)&lt;br /&gt;
    if verificare(numar):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        print(rezolvare(numar))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&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 cod ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; verifică dacă numărul are un număr par de cifre și dacă toate cifrele sunt cifre întregi. Dacă aceste condiții sunt îndeplinite, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; primește numărul și creează un șir de caractere în care cifrele inversează poziția. Algoritmul funcției merge prin număr începând cu prima cifră și adăugând în noul șir caracterul de pe poziția impară și apoi caracterul de pe poziția pară, adică inversând poziția acestora. Funcția returnează numărul întors.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Instrucțiunea &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;:&#039;&#039;&#039; citește numărul de la tastatură, verifică dacă datele sunt introduse corect folosind funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; și afișează rezultatul apelând funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; în cazul în care datele sunt corecte sau afișează mesajul &#039;&#039;&#039;&amp;quot;Datele au fost introduse corect.&amp;quot;&#039;&#039;&#039; în caz contrar, se afișează mesajul &#039;&#039;&#039;&amp;quot;Date nu au fost introduse corect&amp;quot;&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5160</id>
		<title>1566 - Cif Sort</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5160"/>
		<updated>2023-04-28T06:00:10Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1566/cifsort]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se da numarul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Afisati numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc.&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;
Dacă datele sunt introduse corect, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi se va afișa numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc. În caz contrar, se va afișa pe ecran. &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;10 &amp;amp;les; numar &amp;amp;les; 99.999.999&#039;&#039;&#039;&lt;br /&gt;
*  &#039;&#039;&#039;numar&#039;&#039;&#039; are un numar par de cifre.&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 123456&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele au fost introduse corect.&lt;br /&gt;
: 214365&lt;br /&gt;
== Explicație ==&lt;br /&gt;
1 a fost inversat cu 2, 3 cu 4, iar 5 cu 6.&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;
#1566&lt;br /&gt;
&lt;br /&gt;
def verificare(numar):&lt;br /&gt;
    if len(numar) % 2 != 0:&lt;br /&gt;
        return False&lt;br /&gt;
    try:&lt;br /&gt;
        int(numar)&lt;br /&gt;
        return True&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def rezolvare(numar):&lt;br /&gt;
    invers = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(0, len(numar), 2):&lt;br /&gt;
        invers += numar[i+1]&lt;br /&gt;
        invers += numar[i]&lt;br /&gt;
    return int(invers)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceti un numar cu un numar par de cifre: &amp;quot;)&lt;br /&gt;
    if verificare(numar):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        print(rezolvare(numar))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&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 cod ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; verifică dacă numărul are un număr par de cifre și dacă toate cifrele sunt cifre întregi. Dacă aceste condiții sunt îndeplinite, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; primește numărul și creează un șir de caractere în care cifrele inversează poziția. Algoritmul funcției merge prin număr începând cu prima cifră și adăugând în noul șir caracterul de pe poziția impară și apoi caracterul de pe poziția pară, adică inversând poziția acestora. Funcția returnează numărul întors.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Instrucțiunea &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;:&#039;&#039;&#039; citește numărul de la tastatură, verifică dacă datele sunt introduse corect folosind funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; și afișează rezultatul apelând funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; în cazul în care datele sunt corecte sau afișează mesajul &#039;&#039;&#039;&amp;quot;Datele au fost introduse corect.&amp;quot;&#039;&#039;&#039; în caz contrar, se afișează mesajul &#039;&#039;&#039;&amp;quot;Date nu au fost introduse corect&amp;quot;&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5159</id>
		<title>1566 - Cif Sort</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1566_-_Cif_Sort&amp;diff=5159"/>
		<updated>2023-04-28T05:59:40Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1566/cifsort]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se da numarul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Afisati numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc.&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;
Dacă datele sunt introduse corect, pe ecran se va afișa &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi se va afișa pe ecran numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc. În caz contrar, se va afișa pe ecran. &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;10 &amp;amp;les; numar &amp;amp;les; 99.999.999&#039;&#039;&#039;&lt;br /&gt;
*  &#039;&#039;&#039;numar&#039;&#039;&#039; are un numar par de cifre.&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 123456&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele au fost introduse corect.&lt;br /&gt;
: 214365&lt;br /&gt;
== Explicație ==&lt;br /&gt;
1 a fost inversat cu 2, 3 cu 4, iar 5 cu 6.&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;
#1566&lt;br /&gt;
&lt;br /&gt;
def verificare(numar):&lt;br /&gt;
    if len(numar) % 2 != 0:&lt;br /&gt;
        return False&lt;br /&gt;
    try:&lt;br /&gt;
        int(numar)&lt;br /&gt;
        return True&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def rezolvare(numar):&lt;br /&gt;
    invers = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in range(0, len(numar), 2):&lt;br /&gt;
        invers += numar[i+1]&lt;br /&gt;
        invers += numar[i]&lt;br /&gt;
    return int(invers)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = input(&amp;quot;Introduceti un numar cu un numar par de cifre: &amp;quot;)&lt;br /&gt;
    if verificare(numar):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        print(rezolvare(numar))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&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 cod ==&lt;br /&gt;
Funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; verifică dacă numărul are un număr par de cifre și dacă toate cifrele sunt cifre întregi. Dacă aceste condiții sunt îndeplinite, funcția returnează &#039;&#039;&#039;True&#039;&#039;&#039;, altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; primește numărul și creează un șir de caractere în care cifrele inversează poziția. Algoritmul funcției merge prin număr începând cu prima cifră și adăugând în noul șir caracterul de pe poziția impară și apoi caracterul de pe poziția pară, adică inversând poziția acestora. Funcția returnează numărul întors.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Instrucțiunea &#039;&#039;&#039;if __name__ == &amp;quot;__main__&amp;quot;:&#039;&#039;&#039; citește numărul de la tastatură, verifică dacă datele sunt introduse corect folosind funcția &#039;&#039;&#039;verificare(numar)&#039;&#039;&#039; și afișează rezultatul apelând funcția &#039;&#039;&#039;rezolvare(numar)&#039;&#039;&#039; în cazul în care datele sunt corecte sau afișează mesajul &#039;&#039;&#039;&amp;quot;Datele au fost introduse corect.&amp;quot;&#039;&#039;&#039; în caz contrar, se afișează mesajul &#039;&#039;&#039;&amp;quot;Date nu au fost introduse corect&amp;quot;&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3665_-_CMMCP&amp;diff=5158</id>
		<title>3665 - CMMCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3665_-_CMMCP&amp;diff=5158"/>
		<updated>2023-04-28T05:48:04Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3665/cmmcp]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10.&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;
Dacă datele sunt introduse corect, se va afișa &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi se va afișa pe ecran cea mai mare cifră pară a numărului introdus. În caz contrar, se va afișa pe ecran. &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 0 &amp;amp;les; număr1 &amp;amp;les; 1.000.000.000.000&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1440&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Cea mai mare cifră pară a numărului este: 4&lt;br /&gt;
&amp;lt;br&amp;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;
#3665&lt;br /&gt;
&lt;br /&gt;
def verificare_restricții(număr):&lt;br /&gt;
    #Verifică dacă numărul este între 0 și 1.000.000.000.000&lt;br /&gt;
&lt;br /&gt;
    if număr &amp;lt; 0 or număr &amp;gt; 1000000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
def rezolvare_problema(număr):&lt;br /&gt;
&lt;br /&gt;
    maxim = 10 # inițializăm maximul cu 10&lt;br /&gt;
&lt;br /&gt;
    while număr != 0:&lt;br /&gt;
        cifră = număr % 10 # extragem ultima cifră&lt;br /&gt;
        if cifră % 2 == 0 and cifră &amp;gt; maxim: # dacă este pară și mai mare decât maximul curent&lt;br /&gt;
            maxim = cifră # actualizăm maximul&lt;br /&gt;
        număr //= 10 # eliminăm ultima cifră&lt;br /&gt;
&lt;br /&gt;
    return maxim&lt;br /&gt;
def verificare_restricții(numar):&lt;br /&gt;
    # Verifică dacă numărul este între 0 și 1.000.000.000.000&lt;br /&gt;
    if numar &amp;lt; 0 or numar &amp;gt; 1000000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
def rezolvare_problema(numar):&lt;br /&gt;
    maxim = -1 # inițializăm maximul cu -1 pentru a putea verifica dacă am găsit vreo cifră pară&lt;br /&gt;
    while numar != 0:&lt;br /&gt;
        cifra = numar % 10 # extragem ultima cifră&lt;br /&gt;
        if cifra % 2 == 0 and cifra &amp;gt; maxim: # dacă este pară și mai mare decât maximul curent&lt;br /&gt;
            maxim = cifra # actualizăm maximul&lt;br /&gt;
        numar //= 10 # eliminăm ultima cifră&lt;br /&gt;
    if maxim == -1: # dacă nu am găsit vreo cifră pară, setăm maximul la 10&lt;br /&gt;
        maxim = 10&lt;br /&gt;
    return maxim&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = int(input(&amp;quot;Introduceți numărul: &amp;quot;))&lt;br /&gt;
    if verificare_restricții(numar):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        maxim_par = rezolvare_problema(numar)&lt;br /&gt;
        print(&amp;quot;Cea mai mare cifră pară a numărului este:&amp;quot;, maxim_par)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3665_-_CMMCP&amp;diff=5157</id>
		<title>3665 - CMMCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3665_-_CMMCP&amp;diff=5157"/>
		<updated>2023-04-28T05:47:36Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3665/cmmcp]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;număr1&#039;&#039;&#039;. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;număr1&#039;&#039;&#039;.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, se va afișa &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi se va afișa pe ecran cea mai mare cifră pară a numărului introdus. În caz contrar, se va afișa pe ecran. &#039;&#039;&#039;&amp;quot;Datele nu au fost introduse corect&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 0 &amp;amp;les; număr1 &amp;amp;les; 1.000.000.000.000&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1440&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Cea mai mare cifră pară a numărului este: 4&lt;br /&gt;
&amp;lt;br&amp;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;
#3665&lt;br /&gt;
&lt;br /&gt;
def verificare_restricții(număr):&lt;br /&gt;
    #Verifică dacă numărul este între 0 și 1.000.000.000.000&lt;br /&gt;
&lt;br /&gt;
    if număr &amp;lt; 0 or număr &amp;gt; 1000000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
def rezolvare_problema(număr):&lt;br /&gt;
&lt;br /&gt;
    maxim = 10 # inițializăm maximul cu 10&lt;br /&gt;
&lt;br /&gt;
    while număr != 0:&lt;br /&gt;
        cifră = număr % 10 # extragem ultima cifră&lt;br /&gt;
        if cifră % 2 == 0 and cifră &amp;gt; maxim: # dacă este pară și mai mare decât maximul curent&lt;br /&gt;
            maxim = cifră # actualizăm maximul&lt;br /&gt;
        număr //= 10 # eliminăm ultima cifră&lt;br /&gt;
&lt;br /&gt;
    return maxim&lt;br /&gt;
def verificare_restricții(numar):&lt;br /&gt;
    # Verifică dacă numărul este între 0 și 1.000.000.000.000&lt;br /&gt;
    if numar &amp;lt; 0 or numar &amp;gt; 1000000000000:&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
def rezolvare_problema(numar):&lt;br /&gt;
    maxim = -1 # inițializăm maximul cu -1 pentru a putea verifica dacă am găsit vreo cifră pară&lt;br /&gt;
    while numar != 0:&lt;br /&gt;
        cifra = numar % 10 # extragem ultima cifră&lt;br /&gt;
        if cifra % 2 == 0 and cifra &amp;gt; maxim: # dacă este pară și mai mare decât maximul curent&lt;br /&gt;
            maxim = cifra # actualizăm maximul&lt;br /&gt;
        numar //= 10 # eliminăm ultima cifră&lt;br /&gt;
    if maxim == -1: # dacă nu am găsit vreo cifră pară, setăm maximul la 10&lt;br /&gt;
        maxim = 10&lt;br /&gt;
    return maxim&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    numar = int(input(&amp;quot;Introduceți numărul: &amp;quot;))&lt;br /&gt;
    if verificare_restricții(numar):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        maxim_par = rezolvare_problema(numar)&lt;br /&gt;
        print(&amp;quot;Cea mai mare cifră pară a numărului este:&amp;quot;, maxim_par)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2871_-_Fulger&amp;diff=5022</id>
		<title>2871 - Fulger</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2871_-_Fulger&amp;diff=5022"/>
		<updated>2023-04-27T17:47:42Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2871/fulger]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Pentru a putea ajunge la concursul de mașini, Fulger Mcqueen, trebuie să termine de asfaltat drumul din Valea Radiator. La intrarea în Valea Radiator, Bucșă are pregătite &#039;&#039;&#039;numar&#039;&#039;&#039; bidoane, fiecare având înscris pe el câte un număr. Dintre cele &#039;&#039;&#039;numar&#039;&#039;&#039; bidoane doar câteva conțin asfalt.&lt;br /&gt;
&lt;br /&gt;
Bucșă îi spune lui Fulger:&lt;br /&gt;
&lt;br /&gt;
– Fulger, prietene, vreau să te ajut să găsești bidoanele corecte, așa că îți spun că fiecare număr de pe bidon are asociat un cod secret, codul secret al fiecărui număr se obține prin diferența dintre numărul alcătuit din atâtea cifre de 9 câte are numărul scris pe bidon și numărul de pe bidon. Bidoanele cu asfalt au cifra unităților 0 și cifra zecilor 1.&lt;br /&gt;
&lt;br /&gt;
Scrieți un program care să determine:&lt;br /&gt;
&lt;br /&gt;
a) Codul secret asociat fiecărui număr de pe bidon;&lt;br /&gt;
b) Numărul de bidoane care conțin asfalt.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;fulger.in&#039;&#039;&#039; conține pe prima linie un număr natural &#039;&#039;&#039;numar&#039;&#039;&#039; ce reprezintă numărul de bidoane pregătite de Bucșă, iar următoarele &#039;&#039;&#039;numar&#039;&#039;&#039; linii, câte un număr natural, diferit de 0, ce reprezintă numărul asociat fiecărui bidon.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa mesajul: &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi fișierul de ieșire &#039;&#039;&#039;fulger.out&#039;&#039;&#039; va conține pe prima linie, despărțite prin spațiu codul secret al fiecărui număr de pe bidon, iar pe cea de-a doua linie, un număr natural ce reprezintă numărul de bidoane cu asfalt, pe care le-a descoperit Fulger. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;numar&#039;&#039;&#039; ≤ &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fișierului de intrare vor fi situate în intervalul &#039;&#039;&#039;[1, 1.000.000.000]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; fulger.in&lt;br /&gt;
: 5&lt;br /&gt;
: 2138&lt;br /&gt;
: 531649&lt;br /&gt;
: 154289&lt;br /&gt;
: 798&lt;br /&gt;
: 96489&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; fulger.out&lt;br /&gt;
: 7861 468350 845710 201 3510&lt;br /&gt;
: 2&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Bucșă a pregătit pentru Fulger &#039;&#039;&#039;5&#039;&#039;&#039; bidoane.&lt;br /&gt;
&lt;br /&gt;
Cerința a)&lt;br /&gt;
&lt;br /&gt;
Primul bidon are codul secret &#039;&#039;&#039;7861&#039;&#039;&#039;, deoarece &#039;&#039;&#039;9999 – 2138 = 7861&#039;&#039;&#039;&lt;br /&gt;
Al doilea are codul secret &#039;&#039;&#039;468350&#039;&#039;&#039;, deoarece &#039;&#039;&#039;999999 – 531649 = 468350&#039;&#039;&#039;&lt;br /&gt;
Al treilea are codul secret &#039;&#039;&#039;845710&#039;&#039;&#039;, deoarece &#039;&#039;&#039;999999 – 154289 = 845710&#039;&#039;&#039;&lt;br /&gt;
Al patrulea are codul secret &#039;&#039;&#039;201&#039;&#039;&#039;, deoarece &#039;&#039;&#039;999 – 798 = 201&#039;&#039;&#039;&lt;br /&gt;
Al cincilea are codul secret &#039;&#039;&#039;3510&#039;&#039;&#039;, deoarece &#039;&#039;&#039;99999 – 96489 = 3510&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cerința b)&lt;br /&gt;
&lt;br /&gt;
Numărul de bidoane cu asfalt este &#039;&#039;&#039;2&#039;&#039;&#039;.&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;
# 2871&lt;br /&gt;
&lt;br /&gt;
def cod_secret(numar):&lt;br /&gt;
    cifre_noua = 9 * len(str(numar))&lt;br /&gt;
    return cifre_noua - numar&lt;br /&gt;
&lt;br /&gt;
def citire_date():&lt;br /&gt;
    with open(&amp;quot;fulger.in&amp;quot;) as f:&lt;br /&gt;
        numar_bidoane = int(f.readline().strip())&lt;br /&gt;
        if not 1 &amp;lt; numar_bidoane &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            return None&lt;br /&gt;
        bidoane = [int(f.readline().strip()) for _ in range(numar_bidoane)]&lt;br /&gt;
        for b in bidoane:&lt;br /&gt;
            if not 1 &amp;lt;= b &amp;lt;= 1000000000:&lt;br /&gt;
                print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                return None&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        return bidoane&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    bidoane = citire_date()&lt;br /&gt;
    if bidoane is None:&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    coduri_secrete = [cod_secret(b) for b in bidoane]&lt;br /&gt;
    numar_bidoane_cu_asfalt = sum(1 for b in bidoane if b % 10 == 0 and b // 10 % 10 == 1)&lt;br /&gt;
&lt;br /&gt;
    with open(&amp;quot;fulger.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(&amp;quot; &amp;quot;.join(str(c) for c in coduri_secrete) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        f.write(str(numar_bidoane_cu_asfalt))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
     Funcția &#039;&#039;&#039;def cod_secret()&#039;&#039;&#039; primeste un numar intreg si calculeaza un cod secret pentru acesta, prin inmultirea numarului de cifre ale numarului dat cu 9 si apoi scazand numarul initial din aceasta valoare. Returneaza rezultatul ca un numar intreg.&amp;lt;br&amp;gt;    Funcția &#039;&#039;&#039;def citire_date()&#039;&#039;&#039; citeste datele de intrare din fisierul &amp;quot;fulger.in&amp;quot;. Mai intai, se citeste numarul de bidoane din primul rand al fisierului si se verifica daca este intre 2 si 100, dupa care se citesc capacitatea fiecarui bidon si se verifica daca fiecare dintre acestea este intre 1 si 1000000000. Daca datele de intrare nu corespund acestor restrictii, se afiseaza un mesaj de eroare si se returneaza valoarea nula. Daca toate datele sunt introduse corect, se afiseaza un mesaj de confirmare si se returneaza o lista de intregi reprezentand capacitatea bidoanelor.&amp;lt;br&amp;gt;    Funcția &#039;&#039;&#039;def main()&#039;&#039;&#039; este functia principala a programului. Incepe prin apelarea functiei citire_date() pentru a obtine datele de intrare. Daca acestea sunt invalide, programul se opreste. Altfel, se aplica functia cod_secret() pe fiecare element din lista de capacitatea bidoanelor, stocand rezultatele in lista coduri_secrete. De asemenea, programul numara numarul de bidoane cu capacitatea 10x + 1 si il stocheaza in variabila numar_bidoane_cu_asfalt. La final, rezultatele sunt scrise intr-un fisier numit &amp;quot;fulger.out&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4212_-_IncCifPare&amp;diff=5020</id>
		<title>4212 - IncCifPare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4212_-_IncCifPare&amp;diff=5020"/>
		<updated>2023-04-27T17:47:01Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4212/inccifpare]&lt;br /&gt;
&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Să se scrie un program care citește un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; și care crește cu 1 valoarea cifrelor pare. De exemplu, dacă &#039;&#039;&#039;n&#039;&#039;&#039;=1234 atunci se va obține numărul 1335, iar dacă &#039;&#039;&#039;n&#039;&#039;&#039;=135 atunci numărul rămâne neschimbat.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa mesajul: &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa numărul obținut prin creșterea cu 1 a cifrelor pare ale lui &#039;&#039;&#039;n&#039;&#039;&#039;. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 0 ≤ &#039;&#039;&#039;n&#039;&#039;&#039; ≤ 1.000.000.000&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
; Ieșire&lt;br /&gt;
: &amp;quot;Datele sunt introduse corect.&amp;quot;&lt;br /&gt;
: 1335&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4212&lt;br /&gt;
&lt;br /&gt;
def verificare_numar(n: int) -&amp;gt; bool:&lt;br /&gt;
    return 0 &amp;lt;= n &amp;lt;= 1000000000&lt;br /&gt;
&lt;br /&gt;
def creste_cifre_pare(n: int) -&amp;gt; int:&lt;br /&gt;
    r = 0&lt;br /&gt;
    p = 1&lt;br /&gt;
    while n &amp;gt; 0:&lt;br /&gt;
        cifra = n % 10&lt;br /&gt;
        if cifra % 2 == 0:&lt;br /&gt;
            cifra += 1&lt;br /&gt;
        r += cifra * p&lt;br /&gt;
        p = p * 10&lt;br /&gt;
        n = n // 10&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
    if not verificare_numar(n):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
    rezultat = creste_cifre_pare(n)&lt;br /&gt;
    print(f&amp;quot;Numarul obtinut este: {rezultat}&amp;quot;)&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;
Funcția &#039;&#039;&#039;verificare_numar&#039;&#039;&#039; primește un parametru &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr întreg între 0 și 1000000000 (conform restricțiilor din cerință), altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;creste_cifre_pare&#039;&#039;&#039; primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și folosește o buclă &#039;&#039;&#039;while&#039;&#039;&#039; pentru a parcurge cifrele lui de la dreapta la stânga. Pentru fiecare cifră, se verifică dacă este pară și, dacă este, se crește cu 1. Apoi, cifra este adunată la rezultatul &#039;&#039;&#039;r&#039;&#039;&#039;, care se actualizează în fiecare iterație prin înmulțirea cu &#039;&#039;&#039;p&#039;&#039;&#039;, care reprezintă puterea de &#039;&#039;&#039;10&#039;&#039;&#039; corespunzătoare poziției curente a cifrei în numărul inițial. La final, funcția returnează &#039;&#039;&#039;r&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În funcția &#039;&#039;&#039;main&#039;&#039;&#039;, utilizatorul este întâmpinat cu un mesaj de introducere și se citește numărul &#039;&#039;&#039;n&#039;&#039;&#039; de la tastatură folosind input. Apoi, se verifică dacă &#039;&#039;&#039;n&#039;&#039;&#039; este valid folosind &#039;&#039;&#039;verificare_numar&#039;&#039;&#039;. Dacă nu este, se afișează un mesaj de eroare și programul se încheie folosind &#039;&#039;&#039;exit()&#039;&#039;&#039;. Dacă este valid, se calculează numărul obținut prin apelul funcției &#039;&#039;&#039;creste_cifre_pare&#039;&#039;&#039; și se afișează pe ecran folosind print.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4212_-_IncCifPare&amp;diff=5019</id>
		<title>4212 - IncCifPare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4212_-_IncCifPare&amp;diff=5019"/>
		<updated>2023-04-27T17:46:24Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4212/inccifpare]&lt;br /&gt;
&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Să se scrie un program care citește un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; și care crește cu 1 valoarea cifrelor pare. De exemplu, dacă &#039;&#039;&#039;n&#039;&#039;&#039;=1234 atunci se va obține numărul 1335, iar dacă &#039;&#039;&#039;n&#039;&#039;&#039;=135 atunci numărul rămâne neschimbat.&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;
Dacă datele introduse sunt corecte, pe ecran se va afișa mesajul: &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa numărul obținut prin creșterea cu 1 a cifrelor pare ale lui &#039;&#039;&#039;n&#039;&#039;&#039;. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 0 ≤ &#039;&#039;&#039;n&#039;&#039;&#039; ≤ 1.000.000.000&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 1335&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4212&lt;br /&gt;
&lt;br /&gt;
def verificare_numar(n: int) -&amp;gt; bool:&lt;br /&gt;
    return 0 &amp;lt;= n &amp;lt;= 1000000000&lt;br /&gt;
&lt;br /&gt;
def creste_cifre_pare(n: int) -&amp;gt; int:&lt;br /&gt;
    r = 0&lt;br /&gt;
    p = 1&lt;br /&gt;
    while n &amp;gt; 0:&lt;br /&gt;
        cifra = n % 10&lt;br /&gt;
        if cifra % 2 == 0:&lt;br /&gt;
            cifra += 1&lt;br /&gt;
        r += cifra * p&lt;br /&gt;
        p = p * 10&lt;br /&gt;
        n = n // 10&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;))&lt;br /&gt;
    if not verificare_numar(n):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele introduse sunt corecte.&amp;quot;)&lt;br /&gt;
    rezultat = creste_cifre_pare(n)&lt;br /&gt;
    print(f&amp;quot;Numarul obtinut este: {rezultat}&amp;quot;)&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;
Funcția &#039;&#039;&#039;verificare_numar&#039;&#039;&#039; primește un parametru &#039;&#039;&#039;n&#039;&#039;&#039; și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă &#039;&#039;&#039;n&#039;&#039;&#039; este un număr întreg între 0 și 1000000000 (conform restricțiilor din cerință), altfel returnează &#039;&#039;&#039;False&#039;&#039;&#039;. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;creste_cifre_pare&#039;&#039;&#039; primește un număr întreg &#039;&#039;&#039;n&#039;&#039;&#039; și folosește o buclă &#039;&#039;&#039;while&#039;&#039;&#039; pentru a parcurge cifrele lui de la dreapta la stânga. Pentru fiecare cifră, se verifică dacă este pară și, dacă este, se crește cu 1. Apoi, cifra este adunată la rezultatul &#039;&#039;&#039;r&#039;&#039;&#039;, care se actualizează în fiecare iterație prin înmulțirea cu &#039;&#039;&#039;p&#039;&#039;&#039;, care reprezintă puterea de &#039;&#039;&#039;10&#039;&#039;&#039; corespunzătoare poziției curente a cifrei în numărul inițial. La final, funcția returnează &#039;&#039;&#039;r&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În funcția &#039;&#039;&#039;main&#039;&#039;&#039;, utilizatorul este întâmpinat cu un mesaj de introducere și se citește numărul &#039;&#039;&#039;n&#039;&#039;&#039; de la tastatură folosind input. Apoi, se verifică dacă &#039;&#039;&#039;n&#039;&#039;&#039; este valid folosind &#039;&#039;&#039;verificare_numar&#039;&#039;&#039;. Dacă nu este, se afișează un mesaj de eroare și programul se încheie folosind &#039;&#039;&#039;exit()&#039;&#039;&#039;. Dacă este valid, se calculează numărul obținut prin apelul funcției &#039;&#039;&#039;creste_cifre_pare&#039;&#039;&#039; și se afișează pe ecran folosind print.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3966_-_Adunare&amp;diff=5014</id>
		<title>3966 - Adunare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3966_-_Adunare&amp;diff=5014"/>
		<updated>2023-04-27T17:40:16Z</updated>

		<summary type="html">&lt;p&gt;Tamas Claudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3966/adunare]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Gigel are 2 bancnote, de &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039; lei. El nu a învățat încă adunarea cu transport – cea în care adunarea a două cifre corespunzătoare depășește 10 (de exemplu 11 + 99), ci doar cea simplă, în care adunând cifre corespunzătoare din cele două numere nu se depășește 10 (de exemplu 11 + 22).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Stabiliți dacă Gigel știe să determine câte bomboane va cumpăra cu cele două bancnote, știind că o bomboană costă 1 leu. Dacă Gigel nu reușește să afle numărul de bomboane, va trebui să îl ajutați voi!&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;b&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele introduse sunt corecte, pe ecran se va afișa mesajul: &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi programul va afișa pe un mesaj, în funcție de valorile citite. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;b&#039;&#039;&#039; &amp;amp;les;  2.000.000.000&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 11 22&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: Gigel stie!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 11 99&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: Gigel nu stie! El poate cumpara 110 bomboane!&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;
&lt;br /&gt;
def verifica_datele(a: int, b: int) -&amp;gt; bool:&lt;br /&gt;
    if 1 &amp;lt;= a &amp;lt;= 2000000000 and 1 &amp;lt;= b &amp;lt;= 2000000000:&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema(a: int, b: int) -&amp;gt; str:&lt;br /&gt;
    if (a % 10) + (b % 10) &amp;lt;= 9:&lt;br /&gt;
        return &amp;quot;Gigel stie!&amp;quot;&lt;br /&gt;
    else: &lt;br /&gt;
        numar_bomboane = (a // 10) * 10 + a % 10 + (b // 10) * 10 + b % 10&lt;br /&gt;
        return f&amp;quot;Gigel nu stie! El poate cumpara {numar_bomboane} bomboane!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    a, b = map(int, input().split())&lt;br /&gt;
    if verifica_datele(a, b):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        print(rezolva_problema(a, b))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&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;
Funcția &#039;&#039;&#039;verifica_datele&#039;&#039;&#039; primește două argumente &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039; (de tip întreg) și returnează &#039;&#039;&#039;True&#039;&#039;&#039; dacă acestea se află între 1 și 2.000.000.000 (inclusiv), și &#039;&#039;&#039;False&#039;&#039;&#039; în caz contrar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Funcția &#039;&#039;&#039;rezolva_problema&#039;&#039;&#039; primește de asemenea două argumente &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;, și returnează un mesaj corespunzător cerinței problemei. Dacă suma ultimei cifre ale lui &#039;&#039;&#039;a&#039;&#039;&#039; cu ultima cifră ale lui &#039;&#039;&#039;b&#039;&#039;&#039; este mai mică sau egală cu &#039;&#039;&#039;9&#039;&#039;&#039;, atunci Gigel știe să determine numărul de bomboane pe care le poate cumpăra. În caz contrar, se calculează numărul de bomboane pe care le poate cumpăra Gigel (suma tuturor cifrelor lui &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;, cu excepția ultimei cifre a fiecăruia), și se afișează un mesaj corespunzător.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &#039;&#039;&#039;main&#039;&#039;&#039; citește cele două bancnote de la tastatură, verifică dacă datele sunt corecte, și afișează un mesaj corespunzător (în funcție de verificarea făcută de verifica_datele). Dacă datele sunt corecte, se afișează mesajul &#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039; și se calculează numărul de bomboane pe care le poate cumpăra Gigel, în caz contrar se afișează mesajul &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
</feed>