4273 - Prod PP: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
No edit summary
Dragos1234 (talk | contribs)
No edit summary
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp]
Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp]
== Cerinţa ==
== Cerinţa ==
Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule.
Să se scrie un program care citește numărul natural n și determină suma '''S=1^2+2^2+ ... + n^n'''.
== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numărul '''n'''.
Programul citește de la tastatură numărul '''n'''.
== Date de ieșire ==  
== Date de ieșire ==  
Programul afișează pe ecran mesajul Rezultatul este '''S''', unde '''S''' reprezintă valoarea calculată, în caz contrar acest program va afișa "Datele introduse nu corespund cerințelor".
Programul afișează pe ecran mesajul rezultatul este '''S''', unde '''S'' reprezintă suma calculată, în caz contrar acest program va afișa "Datele introduse nu corespund cerințelor".


== Restricţii şi precizări ==
== Restricţii şi precizări ==
Line 13: Line 13:
: 4
: 4
; Ieșire
; Ieșire
: 576
: Rezultatul este 288
<br>
<br>
== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
: 0
: 16
; Ieșire
; Ieșire
: Datele introduse nu corespund cerințelor.
: Datele introduse nu corespund cerințelor.
Line 23: Line 23:
== Exemplul 3 ==
== Exemplul 3 ==
; Intrare
; Intrare
: 42
: 7
; Ieșire
; Ieșire
: Rezultatul este 13244
: Rezultatul este 873612
<br>
<br>
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#4273
#0338
import math
def calculeaza_suma_puterilor(n):
def patrate_perfecte(n):
     suma = 0
     patrate = []
     for i in range(1, n+1):
     i = 1
         suma += i**i
    while len(patrate) < n:
     return suma
         patrat = i * i
        patrate.append(patrat)
        i += 1
     return patrate
 
def calculeaza(numbers):
    product = 1
    for number in numbers:
        product *= number
    print(product)


def validare_numar(n):
def validare_numar(n):
     if n < 1 or n > 10:
     if n <= 0 or n > 15:
         print("Datele introduse nu corespund cerintelor.")
         print("Datele introduse nu corespund cerintelor.")
        return False
    else:
        return True


if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input("Introduceți numărul n: "))
     n = int(input("Introduceti numarul n: "))
     validare_numar(n)
     if validare_numar(n):
    squares = patrate_perfecte(n)
        S = calculeaza_suma_puterilor(n)
    product = calculeaza(squares)
        print("Rezultatul este", S)


</syntaxhighlight>
</syntaxhighlight>

Revision as of 14:05, 18 March 2023

Sursa: [1]

Cerinţa

Să se scrie un program care citește numărul natural n și determină suma S=1^2+2^2+ ... + n^n.

Date de intrare

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

Date de ieșire

Programul afișează pe ecran mesajul rezultatul este S', unde S reprezintă suma calculată, în caz contrar acest program va afișa "Datele introduse nu corespund cerințelor".

Restricţii şi precizări

  • 0 ⩽ n ⩽ 10

Exemplul 1

Intrare
4
Ieșire
Rezultatul este 288


Exemplul 2

Intrare
16
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
7
Ieșire
Rezultatul este 873612


Rezolvare

<syntaxhighlight lang="python" line>

  1. 0338

def calculeaza_suma_puterilor(n):

   suma = 0
   for i in range(1, n+1):
       suma += i**i
   return suma

def validare_numar(n):

   if n <= 0 or n > 15:
       print("Datele introduse nu corespund cerintelor.")
       return False
   else:
       return True

if __name__ == '__main__':

   n = int(input("Introduceti numarul n: "))
   if validare_numar(n):
       S = calculeaza_suma_puterilor(n)
       print("Rezultatul este", S)

</syntaxhighlight>