0996 - Div 3

From Bitnami MediaWiki

Cerință

Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.

Date de intrare

Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Pe prima linie a fişierului div3.out se vor afla elementele şirului dat pentru care suma cifrelor este divizibilă cu 3, separate printr-un spațiu. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări

  • 1 ⩽ n ⩽ 1000
  • elementele şirului vor avea cel mult 9 cifre

Exemplul 1

Intrare
7
124 51 231 7 24 31 5
Ieșire
Datele introduse corespund restricțiilor impuse.
51 231 24

Exemplul 2

Intrare
5
12 34 56 78 90
Ieșire
Datele introduse corespund restricțiilor impuse.
12 90

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(n, numere):

   return all.isdigit() and 1 <= int(n), int(numere) <= 1000


def suma_cifre(n, numere):

   suma = 0
   while n > 0:
       suma += n % 10  # adăugăm cifra unităţilor la suma cifrelor
       n //= 10  # eliminăm cifra unităţilor
   return suma
   for x in numere:  # parcurgem şirul de numere
       if suma_cifre(x) % 3 == 0:  # verificăm dacă suma cifrelor este divizibilă cu 3
           print(x)  # afişăm numărul dacă este divizibil cu 3


if __name__ == "__main__":

   n = int(input())  # citim numărul n
   numere = list(map(int, input().split()))  # citim şirul de numere


if validare(n, numere):

   n = int(n)
   numere = int(numere)
   print("Datele introduse corespund restricțiilor impuse.")
   suma_cifre(n, numere)

else:

   print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>