1684 - Numere Piramidale: Diferență între versiuni

De la Universitas MediaWiki
Linia 25: Linia 25:
import math
import math


def is_square(n):
def validate_input(n):
     return int(math.sqrt(n)) ** 2 == n
     if not n.isdigit():
        return False
    n = int(n)
    if n < 1 or n > 400:
        return False
    return True


n = int(input())
def compute_pyramid_numbers(n):
suma = 0
    pyramid_numbers = []
    for i in range(1, n+ 1):
        pyramid_number = sum([j ** 2 for j in range(1, i + 1)])
        pyramid_numbers.append(pyramid_number)
    return pyramid_numbers
 
 
def main():
    n = input("Introduceti numarul de numere piramidale: ")
    while not validate_input(n):
        n = input("Input invalid! Introduceti numarul de numere piramidale: ")
 
    pyramid_numbers = compute_pyramid_numbers(int(n))
    print("Primele", n, "numere piramidale sunt:", " ".join(str(p) for p in pyramid_numbers))
 
 
if __name__ == '__main__':
    main()


for i in range(1, n + 1):
    suma += i ** 2
    print(suma, end=" ")
</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 24 martie 2023 15:31

Cerința

Amicul nostru, Zoli, a învățat la scoală despre pătrate perfecte și numere piramidale. Al n-lea număr piramidal înseamnă suma primelor n pătrate perfecte, începând de la 1. Ajutați-l pe Zoli sa afle primele n numere piramidale.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran primele n numere piramidale, în ordine crescătoare, separate prin câte un spațiu.

Restricții și precizări

1 ≤ n ≤ 400

Exemplu:

Intrare 3

Ieșire 1 5 14

Explicație

Primele 3 numere piramidale sunt 1, 5</span si 14</span.

Rezolvare

import math

def validate_input(n):
    if not n.isdigit():
        return False
    n = int(n)
    if n < 1 or n > 400:
        return False
    return True

def compute_pyramid_numbers(n):
    pyramid_numbers = []
    for i in range(1, n+ 1):
        pyramid_number = sum([j ** 2 for j in range(1, i + 1)])
        pyramid_numbers.append(pyramid_number)
    return pyramid_numbers


def main():
    n = input("Introduceti numarul de numere piramidale: ")
    while not validate_input(n):
        n = input("Input invalid! Introduceti numarul de numere piramidale: ")

    pyramid_numbers = compute_pyramid_numbers(int(n))
    print("Primele", n, "numere piramidale sunt:", " ".join(str(p) for p in pyramid_numbers))


if __name__ == '__main__':
    main()