0481 - Prod 2 Cons: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==Cerință== | ==Cerință== | ||
Se citește un număr natural n. Să se stabilească dacă n poate fi scris ca produs de două numere naturale consecutive. | 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== | ==Date de intrare== | ||
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 ⩽ | *1 ⩽ '''n''' ⩽ 100000 | ||
==Exemplul 1== | ==Exemplul 1== | ||
Line 33: | Line 34: | ||
:NU EXISTA | :NU EXISTA | ||
==Rezolvare== | ==Rezolvare== | ||
===Rezolvare ver. 1=== | |||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def | def validare(n): | ||
for i in range(1, n | return n.isdigit() and 1 <= int(n) <= 100000 | ||
if i * (i+1) == n: | |||
print(i, i+1) | |||
def prod_2_cons(n): #căutăm 2 numere consecutive, ca produsul acestora să fie egal cu n | |||
print("NU EXISTA") | 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) | |||
</syntaxhighlight> | print("Datele de intrare corespund restricțiilor impuse.") | ||
prod_2_cons(n) | |||
else: | |||
print("Datele de intrare nu corespund restricțiilor impuse.")</syntaxhighlight> |
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>