0480 - Sum 3 Cons: Difference between revisions

From Bitnami MediaWiki
No edit summary
Line 33: 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 main():
def validare_date(n):
     n = int(input("Introduceți un număr: "))
     return n.isdigit() and 1 <= int(n) <= 100000


def verifica_suma_consecutiva(n):
     found = False
     found = False
     for i in range(1, n // 3 + 1):
     for i in range(1, n // 3 + 1):
         if i + (i + 1) + (i + 2) == n:
         if i + (i + 1) + (i + 2) == n:
             print("{} {} {}".format(i, i + 1, i + 2))
             print(i, i + 1, i + 2, sep='\n')
             found = True
             found = True
             break
             break
     if not found:
     if not found:
         print("NU EXISTA")
         print("NU EXISTA")


if __name__ == '__main__':
    n = input("Introduceti numarul n: ")
    if validare_date(n):
        n = int(n)
        print("Datele de intrare corespund restricțiilor impuse.")
        verifica_suma_consecutiva(n)
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>
</syntaxhighlight>

Revision as of 14:20, 15 March 2023

Cerință

Se citește un număr natural n. Să se stabilească dacă n poate fi scris ca sumă de trei numere naturale consecutive.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul afișează pe ecran trei numere naturale consecutive a căror sumă este n, ordonate crescător și separate prin exact un spațiu, dacă există sau mesajul NU EXISTA, dacă nu există trei astfel de numere.

Restricții de precizări

  • 1 ⩽  n ⩽ 100000

Exemplul 1

Intrare
9
Ieșire
Datele introduse corespund restricțiilor impuse.
2
3
4

Exemplul 2

Intrare
7
Ieșire
Datele introduse corespund restricțiilor impuse.
NU EXISTA

Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare_date(n):

   return n.isdigit() and 1 <= int(n) <= 100000


def verifica_suma_consecutiva(n):

   found = False
   for i in range(1, n // 3 + 1):
       if i + (i + 1) + (i + 2) == n:
           print(i, i + 1, i + 2, sep='\n')
           found = True
           break
   if not found:
       print("NU EXISTA")


if __name__ == '__main__':

   n = input("Introduceti numarul n: ")
   if validare_date(n):
       n = int(n)
       print("Datele de intrare corespund restricțiilor impuse.")
       verifica_suma_consecutiva(n)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>