<?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=1828_-_Inlocuire_4</id>
	<title>1828 - Inlocuire 4 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1828_-_Inlocuire_4"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1828_-_Inlocuire_4&amp;action=history"/>
	<updated>2026-05-01T06:38:44Z</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=1828_-_Inlocuire_4&amp;diff=7577&amp;oldid=prev</id>
		<title>Miawinator: Pagină nouă: = Cerința = Pentru un număr natural &lt;code&gt;x&lt;/code&gt; mai mare decât &lt;code&gt;1&lt;/code&gt; numim redusul lui &lt;code&gt;x&lt;/code&gt; cel mai mic număr natural care are exact aceiași divizori primi ca și &lt;code&gt;x&lt;/code&gt;.  Se dă un tablou cu &lt;code&gt;n&lt;/code&gt; elemente, numere naturale mai mari decât &lt;code&gt;1&lt;/code&gt;. Să se înlocuiască fiecare element din tablou cu redusul său și apoi să afișeze elementele din tabloului ordonate descrescător.  Se vor defini și apela următoarele subprog...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1828_-_Inlocuire_4&amp;diff=7577&amp;oldid=prev"/>
		<updated>2023-12-03T14:24:02Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: = Cerința = Pentru un număr natural &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; mai mare decât &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; numim redusul lui &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; cel mai mic număr natural care are exact aceiași divizori primi ca și &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.  Se dă un tablou cu &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; elemente, numere naturale mai mari decât &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. Să se înlocuiască fiecare element din tablou cu redusul său și apoi să afișeze elementele din tabloului ordonate descrescător.  Se vor defini și apela următoarele subprog...&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;
Pentru un număr natural &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; mai mare decât &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; numim redusul lui &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; cel mai mic număr natural care are exact aceiași divizori primi ca și &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se dă un tablou cu &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; elemente, numere naturale mai mari decât &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. Să se înlocuiască fiecare element din tablou cu redusul său și apoi să afișeze elementele din tabloului ordonate descrescător.&lt;br /&gt;
&lt;br /&gt;
Se vor defini și apela următoarele subprograme:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;citire&amp;lt;/code&amp;gt;, care citește de la tastatură valoarea lui &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; și cele &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; elemente ale tabloului&lt;br /&gt;
* &amp;lt;code&amp;gt;afisare&amp;lt;/code&amp;gt;, care afișează pe ecran elementele tabloului, separate prin exact un spațiu&lt;br /&gt;
* &amp;lt;code&amp;gt;redus&amp;lt;/code&amp;gt;, care determină pentru un număr dat redusul său&lt;br /&gt;
* &amp;lt;code&amp;gt;sortare&amp;lt;/code&amp;gt;, care sortează descrescător un tablou&lt;br /&gt;
* &amp;lt;code&amp;gt;inloc&amp;lt;/code&amp;gt;, care realizează înlocuirile cerute.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Se citește de la tastatură numărul &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, iar apoi cele &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; elemente ale tabloului.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Se vor afișa pe ecran elementele tabloului după transformările cerute, separate prin exact un spațiu.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ n ≤ 1000&amp;lt;/code&amp;gt;&lt;br /&gt;
* elementele tabloului vor fi mai mici decât &amp;lt;code&amp;gt;1.000.000.000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
Input:&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
7 18 18 5 14 20 4 &lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
14 10 7 6 6 5 2&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
Input:&lt;br /&gt;
&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
7 18 18 5 14 20 4 &lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
Restricții neîndeplinite pentru n. Introduceți un număr între 1 și 1000.&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 validate_input_restrictions(n, tablou):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 1000:&lt;br /&gt;
        print(&amp;quot;Restricții neîndeplinite pentru n. Introduceți un număr între 1 și 1000.&amp;quot;)&lt;br /&gt;
        return False   &lt;br /&gt;
    if any(x &amp;lt;= 1 or x &amp;gt;= 1000000000 for x in tablou):&lt;br /&gt;
        print(&amp;quot;Elementele tabloului trebuie să fie mai mari decât 1 și mai mici decât 1.000.000.000.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def citire():&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul n=&amp;quot;))&lt;br /&gt;
    print(&amp;quot;Introduceți elemente vector&amp;quot;)&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    return n,vector&lt;br /&gt;
&lt;br /&gt;
def afisare(vector):&lt;br /&gt;
    for i in vector:&lt;br /&gt;
        print(i, end=&amp;quot; &amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
def sortare_descrescatoare(tablou):&lt;br /&gt;
    return sorted(tablou, reverse=True)&lt;br /&gt;
&lt;br /&gt;
def factorizare_in_divizori_primi(x):&lt;br /&gt;
    divizori_primi = []&lt;br /&gt;
    divizor = 2&lt;br /&gt;
    while divizor &amp;lt;= x:&lt;br /&gt;
        if x % divizor == 0:&lt;br /&gt;
            divizori_primi.append(divizor)&lt;br /&gt;
        while x % divizor == 0:&lt;br /&gt;
            x //= divizor&lt;br /&gt;
        divizor += 1&lt;br /&gt;
    if x &amp;gt; 1:&lt;br /&gt;
        divizori_primi.append(x)&lt;br /&gt;
    return divizori_primi&lt;br /&gt;
&lt;br /&gt;
def redus(x):&lt;br /&gt;
    a=1&lt;br /&gt;
    tab=factorizare_in_divizori_primi(x)&lt;br /&gt;
    for i in tab:&lt;br /&gt;
        a*=i&lt;br /&gt;
    return a&lt;br /&gt;
&lt;br /&gt;
def inloc(vector):&lt;br /&gt;
    for i in range(len(vector)):&lt;br /&gt;
        aux=redus(vector[i])&lt;br /&gt;
        vector[i]=aux&lt;br /&gt;
    return vector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, tablou = citire()&lt;br /&gt;
    if not validate_input_restrictions(n, tablou):&lt;br /&gt;
        return&lt;br /&gt;
    tablou=inloc(tablou)&lt;br /&gt;
    tablou=sortare_descrescatoare(tablou)&lt;br /&gt;
    afisare(tablou)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Miawinator</name></author>
	</entry>
</feed>