<?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=2306_-_Numere_22</id>
	<title>2306 - Numere 22 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2306_-_Numere_22"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2306_-_Numere_22&amp;action=history"/>
	<updated>2026-05-01T06:48:34Z</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=2306_-_Numere_22&amp;diff=4481&amp;oldid=prev</id>
		<title>Paul Matei: Pagină nouă: == Cerinţa == Se dau două numere prime &#039;&#039;&#039;p&#039;&#039;&#039;, &#039;&#039;&#039;q&#039;&#039;&#039; și &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale nenule. Determinați exponentul maxim &#039;&#039;&#039;E&#039;&#039;&#039; pentru care numărul &#039;&#039;&#039;pE⋅qE&#039;&#039;&#039; divide produsul celor &#039;&#039;&#039;n&#039;&#039;&#039; numere date. == Date de intrare == Programul citește de la tastatură numere &#039;&#039;&#039;p q n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii. == Date de ieşire == Programul afișează pe ecran numărul &#039;&#039;&#039;E&#039;&#039;&#039;, reprezentând numărul cerut. == Restricții și precizări == *&#039;...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2306_-_Numere_22&amp;diff=4481&amp;oldid=prev"/>
		<updated>2023-04-25T21:09:29Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se dau două numere prime &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale nenule. Determinați exponentul maxim &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039; pentru care numărul &amp;#039;&amp;#039;&amp;#039;pE⋅qE&amp;#039;&amp;#039;&amp;#039; divide produsul celor &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere date. == Date de intrare == Programul citește de la tastatură numere &amp;#039;&amp;#039;&amp;#039;p q n&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale, separate prin spaţii. == Date de ieşire == Programul afișează pe ecran numărul &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;, reprezentând numărul cerut. == Restricții și precizări == *&amp;#039;...&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 dau două numere prime &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale nenule. Determinați exponentul maxim &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039; pentru care numărul &amp;#039;&amp;#039;&amp;#039;pE⋅qE&amp;#039;&amp;#039;&amp;#039; divide produsul celor &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere date.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numere &amp;#039;&amp;#039;&amp;#039;p q n&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale, separate prin spaţii.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Programul afișează pe ecran numărul &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;, reprezentând numărul cerut.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;1 ≤ n ≤ 1000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere citite vor fi mai mici decât &amp;#039;&amp;#039;&amp;#039;1.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
:7 2 5&lt;br /&gt;
72 56 70 9 700&lt;br /&gt;
; Ieșire&lt;br /&gt;
:3&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def validare_date(p, q, n):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifică dacă valorile de intrare sunt valide, bazate pe anumite restricții.&lt;br /&gt;
    Returnează True dacă sunt valide, False altfel.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not (2 &amp;lt;= p &amp;lt;= 10**9):&lt;br /&gt;
        return False&lt;br /&gt;
    if not (2 &amp;lt;= q &amp;lt;= 10**9):&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 10**5):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculeaza_puteri(p, q, n, nums):&lt;br /&gt;
    p1 = p2 = 0&lt;br /&gt;
    for tmp in nums:&lt;br /&gt;
        d = 2&lt;br /&gt;
        while d * d &amp;lt;= tmp:&lt;br /&gt;
            p = 0&lt;br /&gt;
            while tmp % d == 0:&lt;br /&gt;
                tmp //= d&lt;br /&gt;
                p += 1&lt;br /&gt;
            if d == p:&lt;br /&gt;
                p1 += p&lt;br /&gt;
            if d == q:&lt;br /&gt;
                p2 += p&lt;br /&gt;
            d += 1&lt;br /&gt;
        if tmp &amp;gt; 1:&lt;br /&gt;
            if tmp == p:&lt;br /&gt;
                p1 += 1&lt;br /&gt;
            elif tmp == q:&lt;br /&gt;
                p2 += 1&lt;br /&gt;
    return min(p1, p2)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    # citeste valorile de intrare&lt;br /&gt;
    p, q, n = map(int, input().split())&lt;br /&gt;
    nums = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    # valideaza valorile de intrare&lt;br /&gt;
    if validare_date(p, q, n):&lt;br /&gt;
        # calculeaza puterile si afiseaza rezultatul&lt;br /&gt;
        result = calculeaza_puteri(p, q, n, nums)&lt;br /&gt;
        print(result)&lt;br /&gt;
        print(&amp;quot;\nDatele de intrare corespund restricțiilor impuse.\n&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&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;
Soluția calculează numărul minim de numere dintr-o listă care au ca factori primi doar numerele a și b date. Algoritmul descompune fiecare număr în factori primi, numără factorii primi egali cu &amp;#039;&amp;#039;&amp;#039;p și q&amp;#039;&amp;#039;&amp;#039; și returnează minimul dintre cele două valori. În plus, soluția include o funcție de validare a datelor de intrare.&lt;/div&gt;</summary>
		<author><name>Paul Matei</name></author>
	</entry>
</feed>