2206 - Min Impar

From Bitnami MediaWiki
Revision as of 19:48, 24 March 2023 by Nagy Lenard (talk | contribs)

Cerinţa

Se dă un număr X. Să se afle cel mai mic număr Y ≥ X cu proprietatea că Y are doar cifre impare.

Date de intrare

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

Date de ieșire

Dacă datele sunt introduse corect, pe ecran: "Datele sunt introduse corect.",programul va afișa pe ecran numărul Y. În cazul în care datele nu respectă restricțiile, se va afișa: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1 ≤ X ≤ 10^18


Exemple

Exemplul 1

Intrare
22
Ieșire
31

Exemplul 1

Intrare
10
Ieșire
11

Exemplul 1

Intrare
-2
Ieșire
Datele nu corespund restricțiilor impuse.



Rezolvare

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

  1. 2206 - Min Impar

def validare_date(x: int) -> bool:

   """
   Verifică dacă datele de intrare sunt valide conform cerințelor.
   """
   return 1 <= x <= 10 ** 18


def gaseste_numar_imp(x: int) -> int:

   """
   Găsește cel mai mic număr Y ≥ X cu proprietatea că Y are doar cifre impare.
   """
   while True:
       if all(int(d) % 2 == 1 for d in str(x)):
           return x
       x += 1


if __name__ == '__main__':

   x = int(input("Introduceți numărul X: "))
   if not validare_date(x):
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   print("Datele sunt introduse corect.")
   y = gaseste_numar_imp(x)
   print(y)



</syntaxhighlight>