0481 - Prod 2 Cons: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
Programul citește de la tastatură numărul '''n'''. | Programul citește de la tastatură numărul '''n'''. | ||
==Date de ieșire== | ==Date de ieșire== | ||
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran două numere naturale consecutive al căror produs este '''n''', ordonate crescător și separate printr-un spațiu, dacă există sau mesajul NU EXISTA, dacă nu există două astfel de numere. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse." | |||
==Restricții de precizări== | ==Restricții de precizări== | ||
*1 ⩽ '''n''' ⩽ 100000 | *1 ⩽ '''n''' ⩽ 100000 | ||
Line 32: | Line 33: | ||
:NU EXISTA | :NU EXISTA | ||
==Rezolvare ver. 1== | ==Rezolvare== | ||
===Rezolvare ver. 1=== | |||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare(n): | def validare(n): | ||
Line 38: | Line 40: | ||
def prod_2_cons(n): | def prod_2_cons(n): #căutăm 2 numere consecutive, ca produsul acestora să fie egal cu n | ||
found = False | found = False | ||
for i in range(1, int(n ** 0.5) + 1): | for i in range(1, int(n ** 0.5) + 1): #verificăm dacă produsul dinte numărul curent și cel următor sunt egale cu n | ||
if i * (i + 1) == n: | if i * (i + 1) == n: | ||
print(i, i + 1, sep='\n') | print(i, i + 1, sep='\n') | ||
found = True | found = True | ||
break | break #dacă s-a găsit atunci bucla se oprește | ||
if not found: | if not found: #dacă nu am găsit se afișează NU EXISTA | ||
print("NU EXISTA") | print("NU EXISTA") | ||
Latest revision as of 18:22, 22 April 2023
Cerință[edit | edit source]
Se citește un număr natural n. Să se stabilească dacă n poate fi scris ca produs de două numere naturale consecutive.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran două numere naturale consecutive al căror produs este n, ordonate crescător și separate printr-un spațiu, dacă există sau mesajul NU EXISTA, dacă nu există două astfel de numere. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții de precizări[edit | edit source]
- 1 ⩽ n ⩽ 100000
Exemplul 1[edit | edit source]
- Intrare
- 12
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 3
- 4
Exemplul 2[edit | edit source]
- Intrare
- 101
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- NU EXISTA
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(n):
return n.isdigit() and 1 <= int(n) <= 100000
def prod_2_cons(n): #căutăm 2 numere consecutive, ca produsul acestora să fie egal cu n
found = False for i in range(1, int(n ** 0.5) + 1): #verificăm dacă produsul dinte numărul curent și cel următor sunt egale cu n if i * (i + 1) == n: print(i, i + 1, sep='\n') found = True break #dacă s-a găsit atunci bucla se oprește
if not found: #dacă nu am găsit se afișează NU EXISTA print("NU EXISTA")
if __name__ == '__main__':
n = input("Introduceți un număr: ") if validare(n): n = int(n)
print("Datele de intrare corespund restricțiilor impuse.") prod_2_cons(n) else: print("Datele de intrare nu corespund restricțiilor impuse.")</syntaxhighlight>