3938 - Generatoare: Difference between revisions
Miawinator (talk | contribs) |
Miawinator (talk | contribs) 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): | ||
#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 | |||
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
- 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>