3938 - Generatoare: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
Line 27: Line 27:


2-56 4-28 8-14
2-56 4-28 8-14
== Exemplul 4 ==
Intrare n=1
Ieșire:
Numarul nu respecta conditiile


== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python3" line="1" start="1">
<syntaxhighlight lang="python3" line="1" start="1">
def generatoare(n):
def generatoare(n):
    if n<2 or n>1000000000:
        return
     #Testare conditie
     #Testare conditie
     for a in range(2, n // 2 + 1):
     for a in range(2, n // 2 + 1):
Line 38: Line 43:
         if a * b + int(a / b) == n and a % 2 == 0:
         if a * b + int(a / b) == n and a % 2 == 0:
             print(f"{a}-{b}", end=" ") #Printare rezultate
             print(f"{a}-{b}", end=" ") #Printare rezultate
# Exemplu de utilizare


# Exemplu de utilizare
def verificare(n):
    if n<2 or n>1000000000:
        return 1
    else:
        return 0
n = int(input("Introduceti numarul natural n: "))
n = int(input("Introduceti numarul natural n: "))
generatoare(n)
if(verificare(n) == 0):
    generatoare(n)
else:
    print("Numarul nu respecta conditiile")
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 15:52, 2 December 2023

Enunț[edit | edit source]

Două numere a și b sunt numite generatoare ale unui număr natural n dacă a*b+[a/b] = n unde s-a notat cu [a/b] partea întreagă a numărului real (a/b).

Subprogramul generatoare are un singur parametru n, prin care primește un număr natural (n∈[2,10^9]). Subprogramul afișează pe ecran toate perechile distincte de numere naturale cu proprietatea că sunt generatoare ale lui n și că primul număr din pereche este par. Numerele din fiecare pereche sunt separate prin simbolul minus (-), iar perechile sunt separate prin câte un spațiu. Dacă nu există astfel de perechi, se afișează pe ecran mesajul nu exista.

Cerința[edit | edit source]

Scrieți definiția completă a subprogramului generatoare.

Exemplul 1[edit | edit source]

Intrare n=2020

Ieșire:

2-1010 4-505 10-202 20-101 96-21 200-10 606-3 808-2

Exemplul 2[edit | edit source]

Intrare n=32

Ieșire:

2-16 4-8

Exemplul 3[edit | edit source]

Intrare n=112

Ieșire:

2-56 4-28 8-14

Exemplul 4[edit | edit source]

Intrare n=1

Ieșire:

Numarul nu respecta conditiile

Rezolvare[edit | edit source]

<syntaxhighlight lang="python3" line="1" start="1"> def generatoare(n):

   #Testare conditie
   for a in range(2, n // 2 + 1):
       b = n // a
       if a * b + int(a / b) == n and a % 2 == 0:
           print(f"{a}-{b}", end=" ") #Printare rezultate
  1. Exemplu de utilizare

def verificare(n):

   if n<2 or n>1000000000:
       return 1
   else:
       return 0

n = int(input("Introduceti numarul natural n: ")) if(verificare(n) == 0):

   generatoare(n)

else:

   print("Numarul nu respecta conditiile")

</syntaxhighlight>