1922 - N Mod 25

From Bitnami MediaWiki
Revision as of 15:32, 30 April 2023 by Ardelean Alexandru (talk | contribs) (Pagină nouă: ==Cerința== Se dau numerele naturale <code>N</code> și <code>X</code>. Aflați dacă <code>N</code> este divizibil cu <code>2<sup>X</sup></code> și dacă <code>N</code> este divizibil cu <code>5<sup>X</sup></code>. ==Date de intrare== Fișierul de intrare <code>nmod25.in</code> conține numărul <code>X</code> și numărul <code>N</code>. ==Date de ieșire== Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse." Pe următoarea linie se va afi...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit | edit source]

Se dau numerele naturale N și X. Aflați dacă N este divizibil cu 2X și dacă N este divizibil cu 5X.

Date de intrare[edit | edit source]

Fișierul de intrare nmod25.in conține numărul X și numărul N.

Date de ieșire[edit | edit source]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."

Pe următoarea linie se va afișa mesajul DA dacă numărul este divizibil cu 2X sau NU dacă nu este divizibil, pe a treia linie mesajul DA dacă numărul este divizibil cu 5X sau NU dacă nu este divizibil.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări[edit | edit source]

  • N are cel mult 100.001 cifre
  • 0 < X < 5

Exemplu 1[edit | edit source]

Intrare
3
50008
Ieșire
Datele de intrare corespund restricțiilor impuse.
DA
NU

Explicație[edit | edit source]

50008 este divizibil cu 2 la puterea 3 dar nu si cu 5 la puterea 3.

Exemplu 2[edit | edit source]

Intrare
10
800055
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 1922 - N Mod 25

def conditii(x, n):

   return 0 < x < 5 and\
       0 < n <= 100_001


def nmod25(x, n):

   # orice numar A este divizibil cu B daca A % B == 0 (citit A modulo B)
   # În Python, ** este operatorul de ridicare la putere
   print("DA" if n % (2 ** x) == 0 else "NU")
   print("DA" if n % (5 ** x) == 0 else "NU")


if __name__ == "__main__":

   x = int(input())
   n = int(input())
   if not conditii(x, n):
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       nmod25(x, n)

</syntaxhighlight>