<?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=2905_-_Divizori_4</id>
	<title>2905 - Divizori 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=2905_-_Divizori_4"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2905_-_Divizori_4&amp;action=history"/>
	<updated>2026-05-01T04:46:28Z</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=2905_-_Divizori_4&amp;diff=7799&amp;oldid=prev</id>
		<title>Zmicala Narcis at 22:23, 11 December 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2905_-_Divizori_4&amp;diff=7799&amp;oldid=prev"/>
		<updated>2023-12-11T22:23:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=2905_-_Divizori_4&amp;amp;diff=7799&amp;amp;oldid=7146&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Zmicala Narcis</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2905_-_Divizori_4&amp;diff=7146&amp;oldid=prev</id>
		<title>Zmicala Narcis: Pagină nouă: == Cerinţa == Gigel a găsit un șir cu n numere naturale, numerotate de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;n&#039;&#039;&#039; și un număr &#039;&#039;&#039;p&#039;&#039;&#039;. Neavând chef de muncă, Gigel vă cere să rezolvați următoarele cerințe:  a) Aflați câți divizori are numărul din șir aflat pe poziția &#039;&#039;&#039;p&#039;&#039;&#039;. b) Afișați în ordine descrescătoare numerele din șir care au același număr de divizori ca cel aflat pe poziția &#039;&#039;&#039;p&#039;&#039;&#039;. == Date de intrare == Fișierul de intrare &#039;&#039;&#039;divizori4.in&#039;&#039;&#039; conține pe prim...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2905_-_Divizori_4&amp;diff=7146&amp;oldid=prev"/>
		<updated>2023-11-07T07:39:47Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Gigel a găsit un șir cu n numere naturale, numerotate de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; și un număr &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;. Neavând chef de muncă, Gigel vă cere să rezolvați următoarele cerințe:  a) Aflați câți divizori are numărul din șir aflat pe poziția &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;. b) Afișați în ordine descrescătoare numerele din șir care au același număr de divizori ca cel aflat pe poziția &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;divizori4.in&amp;#039;&amp;#039;&amp;#039; conține pe prim...&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;
Gigel a găsit un șir cu n numere naturale, numerotate de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; și un număr &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;. Neavând chef de muncă, Gigel vă cere să rezolvați următoarele cerințe:&lt;br /&gt;
&lt;br /&gt;
a) Aflați câți divizori are numărul din șir aflat pe poziția &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
b) Afișați în ordine descrescătoare numerele din șir care au același număr de divizori ca cel aflat pe poziția &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;divizori4.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n c&amp;#039;&amp;#039;&amp;#039;, unde c poate fi doar &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; sau &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;. A doua linie conține cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; elemente ale șirului. A treia linie conține numărul &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă &amp;#039;&amp;#039;&amp;#039;c=1&amp;#039;&amp;#039;&amp;#039; se rezolvă numai cerința a). Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;divizori4.out&amp;#039;&amp;#039;&amp;#039; va conține pe prima linie numărul de divizori ai numărului aflat în șir pe poziția &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Dacă &amp;#039;&amp;#039;&amp;#039;c=2&amp;#039;&amp;#039;&amp;#039; se rezolvă numai cerința b). Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;divizori4.out&amp;#039;&amp;#039;&amp;#039; va conține pe prima linie, în ordine descrescătoare, numerele din șir cu același număr de divizori ca și cel aflat pe poziția &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* numerele din șir vor fi numere naturale nenule mai mici sau egale cu &amp;#039;&amp;#039;&amp;#039;1.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* pentru 50% din punctaj &amp;#039;&amp;#039;&amp;#039;c=1&amp;#039;&amp;#039;&amp;#039;; pentru 50% din punctaj &amp;#039;&amp;#039;&amp;#039;c=2&amp;#039;&amp;#039;&amp;#039;;&lt;br /&gt;
* pentru &amp;#039;&amp;#039;&amp;#039;c=1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;1 ≤ p ≤ n ≤ 50.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* pentru &amp;#039;&amp;#039;&amp;#039;c=2&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;1 ≤ p ≤ n ≤ 50.000&amp;#039;&amp;#039;&amp;#039; pentru 30% din punctaj și &amp;#039;&amp;#039;&amp;#039;1 ≤ p ≤ n ≤ 10.000&amp;#039;&amp;#039;&amp;#039; pentru 20% din punctaj&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; divizori4.in&lt;br /&gt;
: 10 1&lt;br /&gt;
: 1 5 95 23 16 39 77 74 97 57 &lt;br /&gt;
: 3&lt;br /&gt;
; divizori4.out&lt;br /&gt;
: 4&lt;br /&gt;
== Explicație ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;c=1&amp;#039;&amp;#039;&amp;#039;, se rezolvă doar cerința a). Al treilea număr din șir este &amp;#039;&amp;#039;&amp;#039;95&amp;#039;&amp;#039;&amp;#039;, care are &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039; divizori &amp;#039;&amp;#039;&amp;#039;(1 5 19 95)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; divizori4.in&lt;br /&gt;
: 10 2&lt;br /&gt;
: 1 5 95 23 16 39 77 74 97 57 &lt;br /&gt;
: 3&lt;br /&gt;
; divizori4.out&lt;br /&gt;
: 95 77 74 57 39&lt;br /&gt;
== Explicație ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;c=2&amp;#039;&amp;#039;&amp;#039;, se rezolvă doar cerința b). Al treilea număr din șir este &amp;#039;&amp;#039;&amp;#039;95&amp;#039;&amp;#039;&amp;#039;, care are &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039; divizori. Numerele cu &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039; divizori din șir sunt, în ordine descrescătoare: &amp;#039;&amp;#039;&amp;#039;95 77 74 57 39&amp;#039;&amp;#039;&amp;#039;.&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;
# Funcția care calculează numărul de divizori ai unui număr&lt;br /&gt;
def numar_divizori(n):&lt;br /&gt;
    num_divizori = 0&lt;br /&gt;
    for i in range(1, int(math.sqrt(n)) + 1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            if n / i == i:&lt;br /&gt;
                num_divizori += 1&lt;br /&gt;
            else:&lt;br /&gt;
                num_divizori += 2&lt;br /&gt;
    return num_divizori&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema(input_file, output_file, c):&lt;br /&gt;
    # Deschidem fișierul de intrare și citim datele&lt;br /&gt;
    with open(input_file, &amp;#039;r&amp;#039;) as fisier:&lt;br /&gt;
        n, c = map(int, fisier.readline().split())  # Citim n și c&lt;br /&gt;
        sir = [int(numar) for numar in fisier.readline().split()]  # Citim șirul de numere&lt;br /&gt;
        p = int(fisier.readline())  # Citim p&lt;br /&gt;
&lt;br /&gt;
    # Deschidem fișierul de ieșire pentru a scrie rezultatul&lt;br /&gt;
    with open(output_file, &amp;#039;w&amp;#039;) as fisier:&lt;br /&gt;
        if c == 1:&lt;br /&gt;
            # Afișăm numărul de divizori ai numărului de pe poziția p&lt;br /&gt;
            fisier.write(str(numar_divizori(sir[p-1])))&lt;br /&gt;
        else:&lt;br /&gt;
            # Afișăm numerele din șir care au același număr de divizori ca numărul de pe poziția p&lt;br /&gt;
            num_divizori_p = numar_divizori(sir[p-1])&lt;br /&gt;
            numere = sorted((numar for numar in sir if numar_divizori(numar) == num_divizori_p), reverse=True)&lt;br /&gt;
            fisier.write(&amp;#039; &amp;#039;.join(str(numar) for numar in numere))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    rezolva_problema(&amp;#039;divizori4.in&amp;#039;, &amp;#039;divizori4.out&amp;#039;, 1)&lt;br /&gt;
    rezolva_problema(&amp;#039;divizori4.in&amp;#039;, &amp;#039;divizori4.out&amp;#039;, 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zmicala Narcis</name></author>
	</entry>
</feed>