3625 - Prelucrari Cifre
Sursa: [1]
Cerinţa[edit | edit source]
Scrieți un program care citește un număr natural numar și determină:
- suma pătratelor cifrelor lui numar
- suma cifrelor impare ale lui numar
- suma cifrelor divizibile cu 3 ale lui numar
- numărul cifrelor strict mai mari decât 5 ale lui numar
- produsul cifrelor nenule ale lui numar
- suma dintre cifra cea mai puțin semnificativă (cifra unităților) lui numar
- cifra cea mai semnificativă a lui numar
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul numar.
Date de ieşire[edit | edit source]
Programul va afișa pe ecran, pe randuri diferite suma patratelor cifrelor lui numar, suma cifrelor impare ale lui numar, suma cifrelor divizibile cu 3 ale lui numar, numarul cifrelor strict mai mari decat 5 ale lui numar, produsul cifrelor nenule ale lui numar, suma dintre cifra unitatilor si cifra cea mai semnificativa ale lui numar.
Restricții și precizări[edit | edit source]
- 10 ≤ n ≤ 2.000.000.000
Exemplu[edit | edit source]
- Intrare
- 7360914
- Ieșire
- 192
- 20
- 18
- 3
- 4536
- 11
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
def calculeaza_suma(numar):
# Verificare restricții if numar < 1 or numar >= 1000000000: print("Numărul introdus trebuie să fie mai mare sau egal cu 1 și mai mic decât 1000000000.") else: # Suma pătratelor cifrelor lui numar suma_patrate = 0 for cifra in str(numar): suma_patrate += int(cifra) ** 2 print(f"Suma pătratelor cifrelor lui {numar} este {suma_patrate}.")
# Suma cifrelor impare ale lui numar suma_impare = 0 for cifra in str(numar): if int(cifra) % 2 == 1: suma_impare += int(cifra) print(f"Suma cifrelor impare ale lui {numar} este {suma_impare}.")
# Suma cifrelor divizibile cu 3 ale lui numar suma_numere_divibile3 = 0 for cifra in str(numar): if int(cifra) % 3 == 0: suma_numere_divibile3 += int(cifra) print(f"Suma cifrelor divizibile cu 3 ale lui {numar} este {suma_numere_divibile3}.")
# Numărul cifrelor strict mai mari decât 5 ale lui numar numar_cifre_strict_mai_mari = 0 for cifra in str(numar): if int(cifra) > 5: numar_cifre_strict_mai_mari += 1 print(f"Numărul cifrelor strict mai mari decât 5 din {numar} este {numar_cifre_strict_mai_mari}.")
# Produsul cifrelor nenule ale lui numar produs_nenule = 1 for cifra in str(numar): if int(cifra) != 0: produs_nenule *= int(cifra) print(f"Produsul cifrelor nenule ale lui {numar} este {produs_nenule}.")
# Suma dintre cifra cea mai puțin semnificativă (cifra unităților) și cea mai semnificativă a lui numar cifra_unitatilor = int(str(numar)[-1]) cea_mai_semnificativa_cifra = int(str(numar)[0]) suma_extreme = cifra_unitatilor + cea_mai_semnificativa_cifra print(f"Suma dintre cifra cea mai puțin semnificativă și cifra cea mai semnificativă ale lui {numar} este {suma_extreme}.") print("Datele au fost introduse corect.")
if __name__ == "__main__":
numar = int(input("Introduceți un număr natural: ")) calculeaza_suma(numar)
</syntaxhighlight>
Rezolvare ver. 2[edit | edit source]
<syntaxhighlight lang="python" line>
numar = int(input("Introduceți un număr natural: "))
- Verificare restricții
if numar < 1 or numar >= 1000000000:
print("Numărul introdus trebuie să fie mai mare sau egal cu 1 și mai mic decât 1000000000.")
else:
# Suma pătratelor cifrelor lui numar suma_patrate = 0 for cifra in str(numar): suma_patrate += int(cifra) ** 2 print(f"Suma pătratelor cifrelor lui {numar} este {suma_patrate}.")
# Suma cifrelor impare ale lui numar suma_impare = 0 for cifra in str(numar): if int(cifra) % 2 == 1: suma_impare += int(cifra) print(f"Suma cifrelor impare ale lui {numar} este {suma_impare}.")
# Suma cifrelor divizibile cu 3 ale lui numar suma_numere_divibile3 = 0 for cifra in str(numar): if int(cifra) % 3 == 0: suma_numere_divibile3 += int(cifra) print(f"Suma cifrelor divizibile cu 3 ale lui {numar} este {suma_numere_divibile3}.")
# Numărul cifrelor strict mai mari decât 5 ale lui numar numar_cifre_strict_mai_mari = 0 for cifra in str(numar): if int(cifra) > 5: numar_cifre_strict_mai_mari += 1 print(f"Numărul cifrelor strict mai mari decât 5 din {numar} este {numar_cifre_strict_mai_mari}.")
# Produsul cifrelor nenule ale lui numar produs_nenule = 1 for cifra in str(numar): if int(cifra) != 0: produs_nenule *= int(cifra) print(f"Produsul cifrelor nenule ale lui {numar} este {produs_nenule}.")
# Suma dintre cifra cea mai puțin semnificativă (cifra unităților) și cea mai semnificativă a lui numar cifra_unitatilor = int(str(numar)[-1]) cea_mai_semnificativa_cifra = int(str(numar)[0]) suma_extreme = cifra_unitatilor + cea_mai_semnificativa_cifra print("Datele sunt introduse corect.") print(f"Suma dintre cifra cea mai puțin semnificativă și cifra cea mai semnificativă ale lui {numar} este {suma_extreme}.")
</syntaxhighlight>