<?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=3486_-_Factorul_IX</id>
	<title>3486 - Factorul IX - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3486_-_Factorul_IX"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3486_-_Factorul_IX&amp;action=history"/>
	<updated>2026-05-01T06:36:49Z</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=3486_-_Factorul_IX&amp;diff=8081&amp;oldid=prev</id>
		<title>Raul: Pagină nouă:  = Cerința = Numim factorul-x a &lt;code&gt;2&lt;/code&gt; numere produsul tuturor factorilor primi comuni și diferiți ai celor &lt;code&gt;2&lt;/code&gt; numere.  Se dau &lt;code&gt;n&lt;/code&gt; numere naturale distincte. Se cere să se afle câți factori-x diferiți pot fi obținuți din toate perechile diferite de numere din șir și să se afișeze aceștia.  = Date de intrare = Fișierul de intrare &lt;code&gt;factorulx.in&lt;/code&gt; conține pe prima linie numărul &lt;code&gt;n&lt;/code&gt;, iar pe a doua linie &lt;code&gt;n&lt;...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3486_-_Factorul_IX&amp;diff=8081&amp;oldid=prev"/>
		<updated>2023-12-14T13:42:28Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă:  = Cerința = Numim factorul-x a &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; numere produsul tuturor factorilor primi comuni și diferiți ai celor &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; numere.  Se dau &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale distincte. Se cere să se afle câți factori-x diferiți pot fi obținuți din toate perechile diferite de numere din șir și să se afișeze aceștia.  = Date de intrare = Fișierul de intrare &amp;lt;code&amp;gt;factorulx.in&amp;lt;/code&amp;gt; conține pe prima linie numărul &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, iar pe a doua linie &amp;lt;code&amp;gt;n&amp;lt;...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Cerința =&lt;br /&gt;
Numim factorul-x a &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; numere produsul tuturor factorilor primi comuni și diferiți ai celor &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; numere.&lt;br /&gt;
&lt;br /&gt;
Se dau &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale distincte. Se cere să se afle câți factori-x diferiți pot fi obținuți din toate perechile diferite de numere din șir și să se afișeze aceștia.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fișierul de intrare &amp;lt;code&amp;gt;factorulx.in&amp;lt;/code&amp;gt; conține pe prima linie numărul &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, iar pe a doua linie &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale distincte separate prin spații.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Fișierul de ieșire &amp;lt;code&amp;gt;factorulx.out&amp;lt;/code&amp;gt; va conține pe prima linie numărul de factori-x diferiți care pot fi obținuți din toate perechile diferite de numere din șir, iar pe a &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;-a linie toți aceștia, afișați în ordine crescătoare și separați prin câte 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;
* numerele de pe a doua linie a fișierului de intrare vor fi distincte și mai mici decât &amp;lt;code&amp;gt;2.000.000.000&amp;lt;/code&amp;gt;&lt;br /&gt;
* dacă &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; numere nu au niciun factor prim comun, atunci, prin convenție se alege ca factorul-x al celor &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; numere să fie &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
* punctajul pe test va fi acordat doar dacă ambele numere afișate sunt corecte.&lt;br /&gt;
&lt;br /&gt;
= Exemplu: =&lt;br /&gt;
&amp;lt;code&amp;gt;factorulx.in&amp;lt;/code&amp;gt;&lt;br /&gt;
 9&lt;br /&gt;
 2 4 6 7 9 15 18 20 21&lt;br /&gt;
&amp;lt;code&amp;gt;factorulx.out&amp;lt;/code&amp;gt;&lt;br /&gt;
 6&lt;br /&gt;
 1 2 3 5 6 7&lt;br /&gt;
&lt;br /&gt;
= Explicatie: =&lt;br /&gt;
Factorul-x pentru &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;18&amp;lt;/code&amp;gt; este &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;(&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; este singurul lor factor prim comun), pentru &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; este &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt; (la fel ca în cazul anterior), pentru &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;18&amp;lt;/code&amp;gt; este &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;(&amp;lt;code&amp;gt;2 * 3&amp;lt;/code&amp;gt;), pentru &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt; este &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; etc.&lt;br /&gt;
&lt;br /&gt;
== Încărcare soluție ==&lt;br /&gt;
&amp;lt;syntaxhighlight line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
f = open(&amp;quot;factorulx.in&amp;quot;, &amp;quot;r&amp;quot;)&lt;br /&gt;
g = open(&amp;quot;factorulx.out&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def factorx(n):&lt;br /&gt;
    P = 1&lt;br /&gt;
    if n % 2 == 0:&lt;br /&gt;
        P *= 2&lt;br /&gt;
        while n % 2 == 0:&lt;br /&gt;
            n &amp;gt;&amp;gt;= 1&lt;br /&gt;
    for i in range(3, int(math.sqrt(n)) + 1, 2):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            P *= i&lt;br /&gt;
            while n % i == 0:&lt;br /&gt;
                n = n // i&lt;br /&gt;
    if n &amp;gt; 2:&lt;br /&gt;
        P *= n&lt;br /&gt;
    return P&lt;br /&gt;
&lt;br /&gt;
n = int(f.readline())&lt;br /&gt;
v = [0] * 1024&lt;br /&gt;
fact = [0] * 524288&lt;br /&gt;
&lt;br /&gt;
i = 0&lt;br /&gt;
j = 0&lt;br /&gt;
m = 0&lt;br /&gt;
k = 0&lt;br /&gt;
P = 0&lt;br /&gt;
&lt;br /&gt;
for i in range(1, n + 1):&lt;br /&gt;
    v[i] = int(f.readline())&lt;br /&gt;
&lt;br /&gt;
for i in range(1, n):&lt;br /&gt;
    for j in range(i + 1, n + 1):&lt;br /&gt;
        m = math.gcd(v[i], v[j])&lt;br /&gt;
        P = factorx(m)&lt;br /&gt;
        if P not in fact[1:k + 1]:&lt;br /&gt;
            k += 1&lt;br /&gt;
            fact[k] = P&lt;br /&gt;
            fact[1:k + 1].sort()&lt;br /&gt;
&lt;br /&gt;
g.write(str(k) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
fact[1:k + 1].sort()&lt;br /&gt;
for i in range(1, k + 1):&lt;br /&gt;
    g.write(str(fact[i]) + &amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
f.close()&lt;br /&gt;
g.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
</feed>