0366 - Cifre 3

From Bitnami MediaWiki
Revision as of 19:15, 21 April 2023 by Petras.du.ioana (talk | contribs) (Am creat de la zero.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se citește un număr natural. Să se afișeze, în ordine crescătoare, numerele naturale mai mici decât numarul dat cu proprietatea că pătratul și cubul lor nu au cifre comune.

Date de intrare

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

Date de ieşire

Programul afișează pe ecran numerele cerute, în ordine crescătoare, separate prin exact un spațiu.

Restricții și precizări

  • 1 ≤ n ≤ 1000

Exemplu

Intrare
20
Ieșire
Datele introduse corespund restricțiilor impuse.
2 3 8 9 14

Rezolvare

<syntaxhighlight lang="python" line>

try:

   n = int(input("Introduceți un număr natural: "))  # citim numarul de la tastatura
   if n < 1 or n > 1000:  # verificam daca numarul este valid
       raise ValueError("Datele introduse sunt invalide. Numărul trebuie să fie între 1 și 1000.")

except ValueError as error:

   print(error)

else:

   numere_fara_cifre_comune = []  # lista in care vom adauga numerele cerute
   for i in range(1, n):
       patrat = i ** 2
       cub = i ** 3
       cifre_patrat = set(str(patrat))  # transformam cifrele patratului in set
       cifre_cub = set(str(cub))  # transformam cifrele cubului in set
       if cifre_patrat.isdisjoint(cifre_cub):  # verificam daca cele doua seturi sunt disjuncte
           numere_fara_cifre_comune.append(i)  # daca da, adaugam numarul in lista
   print(*numere_fara_cifre_comune)  # afisam toate numerele din lista
   print("Datele introduse corespund conditiilor impuse.")

</syntaxhighlight>