<?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=2120_-_Concurs_4</id>
	<title>2120 - Concurs 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=2120_-_Concurs_4"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2120_-_Concurs_4&amp;action=history"/>
	<updated>2026-05-01T03:41:41Z</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=2120_-_Concurs_4&amp;diff=9725&amp;oldid=prev</id>
		<title>Cristina94: Pagină nouă: ==Enunţ== La concursul de patinaj artistic din acest an s-au înscris n concurenţi. După înscriere, participanţilor li se asociază coduri numerice distincte aparţinând mulţimii primelor n numere prime.  Pentru a stabili ordinea intrării în concurs, concurenţii sunt aşezaţi în cerc, după care se procedează astfel:  primul participant în concurs este cel situat pe poziţia 1 pentru alegerea celorlalţi, se parcurge circular lista de concurenţi, alegând din k...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2120_-_Concurs_4&amp;diff=9725&amp;oldid=prev"/>
		<updated>2024-03-28T07:26:12Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: ==Enunţ== La concursul de patinaj artistic din acest an s-au înscris n concurenţi. După înscriere, participanţilor li se asociază coduri numerice distincte aparţinând mulţimii primelor n numere prime.  Pentru a stabili ordinea intrării în concurs, concurenţii sunt aşezaţi în cerc, după care se procedează astfel:  primul participant în concurs este cel situat pe poziţia 1 pentru alegerea celorlalţi, se parcurge circular lista de concurenţi, alegând din k...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Enunţ==&lt;br /&gt;
La concursul de patinaj artistic din acest an s-au înscris n concurenţi. După înscriere, participanţilor li se asociază coduri numerice distincte aparţinând mulţimii primelor n numere prime.&lt;br /&gt;
&lt;br /&gt;
Pentru a stabili ordinea intrării în concurs, concurenţii sunt aşezaţi în cerc, după care se procedează astfel:&lt;br /&gt;
&lt;br /&gt;
primul participant în concurs este cel situat pe poziţia 1&lt;br /&gt;
pentru alegerea celorlalţi, se parcurge circular lista de concurenţi, alegând din k în k, câte un unul, până la repartizarea tuturor.&lt;br /&gt;
Regulamentul prevede ca participanţii să intre în concurs în ordinea crescătoare a codurilor lor.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Cunoscând numărul n de concurenţi precum şi numărul k folosit la repartizarea concurenţilor în concurs, se cere să se determine şirul codurilor asociate concurenţilor, astfel încât intrarea lor în concurs să se facă conform regulamentului.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fişierul concurs4.in conţine pe prima linie numerele naturale n şi k cu semnificaţiile din enunţ.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fişierul concurs4.out va conţine n numere naturale separate prin câte un spaţiu, reprezentând şirul codurilor asociate concurenţilor, astfel încât intrarea lor în concurs să se facă conform regulamentului.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
• 2 ≤ k ≤ n ≤ 30000&lt;br /&gt;
&lt;br /&gt;
==Exemplu 1==&lt;br /&gt;
;concurs4.in&lt;br /&gt;
:10 4&lt;br /&gt;
&lt;br /&gt;
;concurs4.out&lt;br /&gt;
:2 29 23 7 3 17 13 19 5 11&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Distribuirea codurilor se face astfel:&lt;br /&gt;
2 29 23 7 3 17 13 19 5 11 Numărând din 4 în 4, începând cu primul cod, se obţine următoarea listă:&lt;br /&gt;
2 3 5 7 11 13 17 19 23 29 reprezentând primele 10 numere prime.&lt;br /&gt;
&lt;br /&gt;
==Exemplu 2==&lt;br /&gt;
;concurs4.in&lt;br /&gt;
:1 1&lt;br /&gt;
&lt;br /&gt;
;concurs4.out&lt;br /&gt;
Valorile pentru n si k trebuie sa fie in intervalul [2, 30000].&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#2120 Concurs4&lt;br /&gt;
def este_prim(numar):&lt;br /&gt;
    if numar &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(numar ** 0.5) + 1):&lt;br /&gt;
        if numar % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def genereaza_prime(n):&lt;br /&gt;
    prime = []&lt;br /&gt;
    numar = 2&lt;br /&gt;
    while len(prime) &amp;lt; n:&lt;br /&gt;
        if este_prim(numar):&lt;br /&gt;
            prime.append(numar)&lt;br /&gt;
        numar += 1&lt;br /&gt;
    return prime&lt;br /&gt;
&lt;br /&gt;
def alege_concurenti(n, k):&lt;br /&gt;
    prime = genereaza_prime(n)&lt;br /&gt;
    concurenti = []&lt;br /&gt;
&lt;br /&gt;
    index = 0&lt;br /&gt;
    while len(concurenti) &amp;lt; n:&lt;br /&gt;
        index = (index + k - 1) % len(prime)&lt;br /&gt;
        concurenti.append(prime.pop(index))&lt;br /&gt;
    return concurenti&lt;br /&gt;
&lt;br /&gt;
def verifica_date_intrare(n, k):&lt;br /&gt;
    if not (2 &amp;lt;= k &amp;lt;= n &amp;lt;= 30000):&lt;br /&gt;
        with open(&amp;quot;concurs4.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
            f.write(&amp;quot;Valorile pentru n si k trebuie sa fie in intervalul [2, 30000].&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;concurs4.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n, k = map(int, f.readline().split())&lt;br /&gt;
        verifica_date_intrare(n, k)&lt;br /&gt;
&lt;br /&gt;
    coduri_concurenti = alege_concurenti(n, k)&lt;br /&gt;
&lt;br /&gt;
    with open(&amp;quot;concurs4.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(&amp;quot; &amp;quot;.join(map(str, coduri_concurenti)))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cristina94</name></author>
	</entry>
</feed>