<?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=3912_-_PermPrimeVec</id>
	<title>3912 - PermPrimeVec - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3912_-_PermPrimeVec"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3912_-_PermPrimeVec&amp;action=history"/>
	<updated>2026-05-01T20:05:15Z</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=3912_-_PermPrimeVec&amp;diff=9996&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Se dă o mulțime cu n elemente, numere naturale. Afișați în ordine lexicografică toate permutările mulțimii date în care nu există două elemente prime alăturate. == Date de intrare == Programul citește de la tastatură numărul n și apoi n numere naturale, reprezentând elementele mulțimii. == Date de ieșire == Programul va afișa pe ecran permutările cerute, câte una pe fiecare rând și având elementele separate prin câte un spaţiu. == Res...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3912_-_PermPrimeVec&amp;diff=9996&amp;oldid=prev"/>
		<updated>2024-06-03T16:25:44Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Se dă o mulțime cu n elemente, numere naturale. Afișați în ordine lexicografică toate permutările mulțimii date în care nu există două elemente prime alăturate. == Date de intrare == Programul citește de la tastatură numărul n și apoi n numere naturale, reprezentând elementele mulțimii. == Date de ieșire == Programul va afișa pe ecran permutările cerute, câte una pe fiecare rând și având elementele separate prin câte un spaţiu. == Res...&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 dă o mulțime cu n elemente, numere naturale. Afișați în ordine lexicografică toate permutările mulțimii date în care nu există două elemente prime alăturate.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul n și apoi n numere naturale, reprezentând elementele mulțimii.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran permutările cerute, câte una pe fiecare rând și având elementele separate prin câte un spaţiu.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 &amp;lt; n ≤ 11&lt;br /&gt;
*numărul valorilor prime din șir va fi aproximativ egal cu cel al valorilor neprime&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
5&amp;lt;br&amp;gt;&lt;br /&gt;
9 7 1 2 3&lt;br /&gt;
;Iesire&lt;br /&gt;
2 1 3 9 7 &amp;lt;br&amp;gt;&lt;br /&gt;
2 1 7 9 3 &amp;lt;br&amp;gt;&lt;br /&gt;
2 9 3 1 7 &amp;lt;br&amp;gt;&lt;br /&gt;
2 9 7 1 3 &amp;lt;br&amp;gt;&lt;br /&gt;
3 1 2 9 7 &amp;lt;br&amp;gt;&lt;br /&gt;
3 1 7 9 2 &amp;lt;br&amp;gt;&lt;br /&gt;
3 9 2 1 7 &amp;lt;br&amp;gt;&lt;br /&gt;
3 9 7 1 2 &amp;lt;br&amp;gt;&lt;br /&gt;
7 1 2 9 3 &amp;lt;br&amp;gt;&lt;br /&gt;
7 1 3 9 2 &amp;lt;br&amp;gt;&lt;br /&gt;
7 9 2 1 3 &amp;lt;br&amp;gt;&lt;br /&gt;
7 9 3 1 2 &lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import itertools&lt;br /&gt;
&lt;br /&gt;
&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;
&lt;br /&gt;
def read_input():&lt;br /&gt;
    n = int(input().strip())&lt;br /&gt;
    elements = list(map(int, input().strip().split()))&lt;br /&gt;
    return n, elements&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def write_output(permutations):&lt;br /&gt;
    for perm in permutations:&lt;br /&gt;
        print(&amp;quot; &amp;quot;.join(map(str, perm)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def has_no_consecutive_primes(perm):&lt;br /&gt;
    for i in range(len(perm) - 1):&lt;br /&gt;
        if is_prime(perm[i]) and is_prime(perm[i + 1]):&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def generate_permutations(n, elements):&lt;br /&gt;
    all_permutations = sorted(itertools.permutations(elements))&lt;br /&gt;
    valid_permutations = [perm for perm in all_permutations if has_no_consecutive_primes(perm)]&lt;br /&gt;
    return valid_permutations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, elements = read_input()&lt;br /&gt;
&lt;br /&gt;
    if not (1 &amp;lt; n &amp;lt;= 11):&lt;br /&gt;
        raise ValueError(&amp;quot;n trebuie să fie între 1 și 11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if len(elements) != n:&lt;br /&gt;
        raise ValueError(&amp;quot;Numărul de elemente trebuie să fie egal cu n.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    permutations = generate_permutations(n, elements)&lt;br /&gt;
    write_output(permutations)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
</feed>