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ță
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
Programul citește de la tastatură numărul n.
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
- 1 ⩽ n ⩽ 100000
Exemplul 1
- Intrare
- 12
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 3
- 4
Exemplul 2
- Intrare
- 101
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- NU EXISTA
Rezolvare
Rezolvare ver. 1
<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>