<?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=3897_-_Josephus_Sequence</id>
	<title>3897 - Josephus Sequence - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3897_-_Josephus_Sequence"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3897_-_Josephus_Sequence&amp;action=history"/>
	<updated>2026-05-01T09:08:02Z</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=3897_-_Josephus_Sequence&amp;diff=9796&amp;oldid=prev</id>
		<title>Oros Ioana Diana at 14:00, 18 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3897_-_Josephus_Sequence&amp;diff=9796&amp;oldid=prev"/>
		<updated>2024-05-18T14:00:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=3897_-_Josephus_Sequence&amp;amp;diff=9796&amp;amp;oldid=9245&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3897_-_Josephus_Sequence&amp;diff=9245&amp;oldid=prev</id>
		<title>Oros Ioana Diana: Pagină nouă: == Cerința == Josephus este un matematician înrăit. &lt;br&gt; Într-o zi acesta se joacă cu primele N numere prime, când se decide să își construiască propiul său șir circular format din aceste numere. Pe prima poziție se va afla primul număr prim, adică 2, iar mai apoi se parcurge circular șirul din K în K, completându-se cu restul de numere prime, până la repartizarea tuturor. &lt;br&gt; Din nefericire lui Josephus, i-a venit somnul, așa, că vă roagă pe voi să...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3897_-_Josephus_Sequence&amp;diff=9245&amp;oldid=prev"/>
		<updated>2024-01-08T20:49:55Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Josephus este un matematician înrăit. &amp;lt;br&amp;gt; Într-o zi acesta se joacă cu primele N numere prime, când se decide să își construiască propiul său șir circular format din aceste numere. Pe prima poziție se va afla primul număr prim, adică 2, iar mai apoi se parcurge circular șirul din K în K, completându-se cu restul de numere prime, până la repartizarea tuturor. &amp;lt;br&amp;gt; Din nefericire lui Josephus, i-a venit somnul, așa, că vă roagă pe voi să...&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;
Josephus este un matematician înrăit.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Într-o zi acesta se joacă cu primele N numere prime, când se decide să își construiască propiul său șir circular format din aceste numere. Pe prima poziție se va afla primul număr prim, adică 2, iar mai apoi se parcurge circular șirul din K în K, completându-se cu restul de numere prime, până la repartizarea tuturor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Din nefericire lui Josephus, i-a venit somnul, așa, că vă roagă pe voi să îi construiți șirul.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare josephusin.txt conține pe prima linie numărul N și numărul K.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire josephusout.txt va conține N numere naturale separate prin câte un spaţiu, reprezentând şirul lui Josephus.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;1 ≤ N ≤ 1.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;1 ≤ K ≤ 1.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*cel de-al 1.000.000 număr prim este 15.485.863&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; josephusin.txt&lt;br /&gt;
: 5 4&lt;br /&gt;
; josephusout.txt&lt;br /&gt;
: 2 5 11 7 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; josephusin.txt&lt;br /&gt;
: 10 3&lt;br /&gt;
; josephusout.txt&lt;br /&gt;
: 2 5 11 17 23 29 7 13 19 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3897 - Josephus Sequence&lt;br /&gt;
def is_prime(num):&lt;br /&gt;
    if num &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(num**0.5) + 1):&lt;br /&gt;
        if num % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def generate_primes(N):&lt;br /&gt;
    primes = []&lt;br /&gt;
    num = 2&lt;br /&gt;
    while len(primes) &amp;lt; N:&lt;br /&gt;
        if is_prime(num):&lt;br /&gt;
            primes.append(num)&lt;br /&gt;
        num += 1&lt;br /&gt;
    return primes&lt;br /&gt;
&lt;br /&gt;
def josephus_sequence(N, K):&lt;br /&gt;
    primes = generate_primes(N)&lt;br /&gt;
    josephus_list = []&lt;br /&gt;
    index = 0&lt;br /&gt;
&lt;br /&gt;
    for _ in range(N):&lt;br /&gt;
        index = (index + K - 1) % len(primes)&lt;br /&gt;
        josephus_list.append(primes.pop(index))&lt;br /&gt;
&lt;br /&gt;
    return josephus_list&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;josephusin.txt&amp;quot;, &amp;quot;r&amp;quot;) as file:&lt;br /&gt;
            N, K = map(int, file.readline().split())&lt;br /&gt;
&lt;br /&gt;
        if not (1 &amp;lt;= N &amp;lt;= 1000000 and 1 &amp;lt;= K &amp;lt;= 1000000000):&lt;br /&gt;
            print(&amp;quot;Fals&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        josephus_result = josephus_sequence(N, K)&lt;br /&gt;
&lt;br /&gt;
        with open(&amp;quot;josephusout.txt&amp;quot;, &amp;quot;w&amp;quot;) as file:&lt;br /&gt;
            file.write(&amp;quot; &amp;quot;.join(map(str, josephus_result)))&lt;br /&gt;
&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;Fals&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;Error: {str(e)}&amp;quot;)&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;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Distribuirea se face astfel:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 5 11 7 3&amp;#039;&amp;#039;&amp;#039; numărând din 4 în 4, începând cu primul termen, se obţine următoarea listă:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 3 5 7 11&amp;#039;&amp;#039;&amp;#039; reprezentând primele 5 numere prime.&lt;/div&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
</feed>