0481 - Prod 2 Cons: Difference between revisions

From Bitnami MediaWiki
 
(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==
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.
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


==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 afiseaza_produs_doua_numere_consecutive(n):
def validare(n):
     for i in range(1, n // 2 + 1):
    return n.isdigit() and 1 <= int(n) <= 100000
         if i * (i+1) == n:
 
             print(i, i+1)
 
             return
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>