<?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=0258_-_Det_Prim</id>
	<title>0258 - Det Prim - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0258_-_Det_Prim"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0258_-_Det_Prim&amp;action=history"/>
	<updated>2026-05-01T13:51: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=0258_-_Det_Prim&amp;diff=5387&amp;oldid=prev</id>
		<title>Paul Matei: Pagină nouă: == Cerinţa == Se dau două numere naturale &#039;&#039;&#039;a&#039;&#039;&#039; şi &#039;&#039;&#039;b&#039;&#039;&#039;, &#039;&#039;&#039;a≤b&#039;&#039;&#039;. Să se determine, dacă există, un număr prim &#039;&#039;&#039;x&#039;&#039;&#039; care aparţine intervalului închis &#039;&#039;&#039;[a,b]&#039;&#039;&#039; pentru care valoarea expresiei &#039;&#039;&#039;|b+a-2*x|&#039;&#039;&#039; este minimă, unde &#039;&#039;&#039;|m|&#039;&#039;&#039; este valoarea absolută a numărului întreg &#039;&#039;&#039;m&#039;&#039;&#039;. Dacă nu există nici un astfel de număr, se va afişa mesajul &#039;&#039;&#039;NU EXISTA&#039;&#039;&#039;, iar dacă există mai multe se va afişa cel mai mic. == Date de intrare == Programul c...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0258_-_Det_Prim&amp;diff=5387&amp;oldid=prev"/>
		<updated>2023-04-29T11:04:07Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se dau două numere naturale &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;a≤b&amp;#039;&amp;#039;&amp;#039;. Să se determine, dacă există, un număr prim &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039; care aparţine intervalului închis &amp;#039;&amp;#039;&amp;#039;[a,b]&amp;#039;&amp;#039;&amp;#039; pentru care valoarea expresiei &amp;#039;&amp;#039;&amp;#039;|b+a-2*x|&amp;#039;&amp;#039;&amp;#039; este minimă, unde &amp;#039;&amp;#039;&amp;#039;|m|&amp;#039;&amp;#039;&amp;#039; este valoarea absolută a numărului întreg &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;. Dacă nu există nici un astfel de număr, se va afişa mesajul &amp;#039;&amp;#039;&amp;#039;NU EXISTA&amp;#039;&amp;#039;&amp;#039;, iar dacă există mai multe se va afişa cel mai mic. == Date de intrare == Programul c...&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 naturale &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;a≤b&amp;#039;&amp;#039;&amp;#039;. Să se determine, dacă există, un număr prim &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039; care aparţine intervalului închis &amp;#039;&amp;#039;&amp;#039;[a,b]&amp;#039;&amp;#039;&amp;#039; pentru care valoarea expresiei &amp;#039;&amp;#039;&amp;#039;|b+a-2*x|&amp;#039;&amp;#039;&amp;#039; este minimă, unde &amp;#039;&amp;#039;&amp;#039;|m|&amp;#039;&amp;#039;&amp;#039; este valoarea absolută a numărului întreg &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;. Dacă nu există nici un astfel de număr, se va afişa mesajul &amp;#039;&amp;#039;&amp;#039;NU EXISTA&amp;#039;&amp;#039;&amp;#039;, iar dacă există mai multe se va afişa cel mai mic.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Programul afișează pe ecran numărul &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039; determinat, sau mesajul &amp;#039;&amp;#039;&amp;#039;NU EXISTA&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;1 ≤ a ≤ b ≤ 1.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
:7 18&lt;br /&gt;
; Ieșire&lt;br /&gt;
:13 &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 este_prim(x):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifică dacă un număr x este prim.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return x &amp;gt; 1 and all(x % i != 0 for i in range(2, int(math.sqrt(x))+1))&lt;br /&gt;
&lt;br /&gt;
def validare_date(a, b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifică dacă datele de intrare sunt valide.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not isinstance(a, int) or not isinstance(b, int):&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt; a &amp;lt;= b &amp;lt;= 1000000000):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    print(&amp;quot;Introduceti intervalul [a, b]:&amp;quot;)&lt;br /&gt;
    a = int(input(&amp;quot;a = &amp;quot;))&lt;br /&gt;
    b = int(input(&amp;quot;b = &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    # validam datele de intrare&lt;br /&gt;
    if validare_date(a, b):&lt;br /&gt;
        min_val = float(&amp;#039;inf&amp;#039;)  # initializam minimul cu o valoare foarte mare&lt;br /&gt;
        min_prim = None  # initializam numarul prim cu None&lt;br /&gt;
&lt;br /&gt;
        # cautam numarul prim x din intervalul [a,b] pentru care expresia este minima&lt;br /&gt;
        for x in range(a, b+1):&lt;br /&gt;
            if este_prim(x):&lt;br /&gt;
                # calculam valoarea expresiei |b+a-2*x|&lt;br /&gt;
                val = abs(b+a-2*x)&lt;br /&gt;
                # actualizam minimul si numarul prim daca este cazul&lt;br /&gt;
                if val &amp;lt; min_val:&lt;br /&gt;
                    min_val = val&lt;br /&gt;
                    min_prim = x&lt;br /&gt;
&lt;br /&gt;
        # afisam rezultatul&lt;br /&gt;
        if min_prim is None:&lt;br /&gt;
            print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Numarul prim din intervalul [{a}, {b}] pentru care expresia este minima este {min_prim}.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricților impuse.&amp;quot;)&lt;br /&gt;
# afisam un mesaj care sa confirme faptul ca datele de intrare sunt valide&lt;br /&gt;
print(f&amp;quot;\nDatele de intrare ({a}, {b}) corespund restricțiilor impuse.\n&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație rezolvare==&lt;br /&gt;
Acesta este un cod Python care găsește un număr prim într-un interval specificat [a, b], care minimizează o anumită expresie. Se verifică dacă numerele de intrare sunt valide, se caută numărul prim care minimizează expresia și se afișează rezultatul. La final se afișează un mesaj de confirmare a validității datelor de intrare.&lt;/div&gt;</summary>
		<author><name>Paul Matei</name></author>
	</entry>
</feed>