<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0819_-_Generare_1</id>
	<title>0819 - Generare 1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0819_-_Generare_1"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0819_-_Generare_1&amp;action=history"/>
	<updated>2026-05-01T04:38:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0819_-_Generare_1&amp;diff=8994&amp;oldid=prev</id>
		<title>Corjuc Eunice: Pagină nouă: = Cerința = Se consideră următoarele operații, care se aplică numerelor naturale:  * &lt;code&gt;op 1&lt;/code&gt; – se adaugă la număr cifra &lt;code&gt;4&lt;/code&gt; – din &lt;code&gt;13&lt;/code&gt; se obține &lt;code&gt;134&lt;/code&gt; * &lt;code&gt;op 2&lt;/code&gt; – se adaugă la număr cifra &lt;code&gt;0&lt;/code&gt; – din &lt;code&gt;13&lt;/code&gt; se obține &lt;code&gt;130&lt;/code&gt; * &lt;code&gt;op 3&lt;/code&gt; – dacă numărul este par, se împarte la &lt;code&gt;2&lt;/code&gt; – din &lt;code&gt;20&lt;/code&gt; se obține &lt;code&gt;10&lt;/code&gt;  Dându-se un număr natur...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0819_-_Generare_1&amp;diff=8994&amp;oldid=prev"/>
		<updated>2024-01-04T17:37:00Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: = Cerința = Se consideră următoarele operații, care se aplică numerelor naturale:  * &amp;lt;code&amp;gt;op 1&amp;lt;/code&amp;gt; – se adaugă la număr cifra &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; – din &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; se obține &amp;lt;code&amp;gt;134&amp;lt;/code&amp;gt; * &amp;lt;code&amp;gt;op 2&amp;lt;/code&amp;gt; – se adaugă la număr cifra &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; – din &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; se obține &amp;lt;code&amp;gt;130&amp;lt;/code&amp;gt; * &amp;lt;code&amp;gt;op 3&amp;lt;/code&amp;gt; – dacă numărul este par, se împarte la &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; – din &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; se obține &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;  Dându-se un număr natur...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Cerința =&lt;br /&gt;
Se consideră următoarele operații, care se aplică numerelor naturale:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;op 1&amp;lt;/code&amp;gt; – se adaugă la număr cifra &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; – din &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; se obține &amp;lt;code&amp;gt;134&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;op 2&amp;lt;/code&amp;gt; – se adaugă la număr cifra &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; – din &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; se obține &amp;lt;code&amp;gt;130&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;op 3&amp;lt;/code&amp;gt; – dacă numărul este par, se împarte la &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; – din &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; se obține &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dându-se un număr natural &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, să se determine un șir de operații dintre cele de mai sus prin care, pornind de la valoarea &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, se ajunge la &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Programul citește de la tastatură numărul &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Programul va afișa pe ecran un șir de valori din mulțimea &amp;lt;code&amp;gt;{1,2,3}&amp;lt;/code&amp;gt;, astfel încât, aplicând în ordine operațiile corespunzătoare se ajunge de la valoarea &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; la valoarea &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ n ≤ 100.000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
Input:&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
3 3 2 3&lt;br /&gt;
&lt;br /&gt;
Explicație:&lt;br /&gt;
&lt;br /&gt;
Pornim de la &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;. Se aplica &amp;lt;code&amp;gt;op 3&amp;lt;/code&amp;gt; și se obține &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;; se aplică &amp;lt;code&amp;gt;op 3&amp;lt;/code&amp;gt; și se obține &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;; se aplică &amp;lt;code&amp;gt;op 2&amp;lt;/code&amp;gt; și se obține &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;; se aplică &amp;lt;code&amp;gt;op 3&amp;lt;/code&amp;gt; și se obține &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
Input:&lt;br /&gt;
&lt;br /&gt;
9999999999999&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
Constrangeri neindeplinite&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def ver(n):&lt;br /&gt;
    if not(1&amp;lt;=n&amp;lt;=100000):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
v = [0] * 10000&lt;br /&gt;
op = [0] * 10000&lt;br /&gt;
nv = 0&lt;br /&gt;
&lt;br /&gt;
# 1 -&amp;gt; se adauga 4&lt;br /&gt;
# 2 -&amp;gt; se adauga 0&lt;br /&gt;
# 3 -&amp;gt; se imparte la 2, daca este par&lt;br /&gt;
&lt;br /&gt;
n = int(input())&lt;br /&gt;
ver(n)&lt;br /&gt;
gata = False&lt;br /&gt;
nv += 1&lt;br /&gt;
v[nv] = n&lt;br /&gt;
&lt;br /&gt;
while not gata:&lt;br /&gt;
    if n == 4:&lt;br /&gt;
        gata = True&lt;br /&gt;
    else:&lt;br /&gt;
        if n % 10 == 4:&lt;br /&gt;
            nv += 1&lt;br /&gt;
            op[nv] = 1&lt;br /&gt;
            n //= 10&lt;br /&gt;
        elif n % 10 == 0:&lt;br /&gt;
            nv += 1&lt;br /&gt;
            op[nv] = 2&lt;br /&gt;
            n //= 10&lt;br /&gt;
        else:&lt;br /&gt;
            nv += 1&lt;br /&gt;
            op[nv] = 3&lt;br /&gt;
            n *= 2&lt;br /&gt;
        v[nv] = n&lt;br /&gt;
&lt;br /&gt;
for i in range(nv, 1, -1):&lt;br /&gt;
    print(op[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Corjuc Eunice</name></author>
	</entry>
</feed>