0285 - X2Y2K: Diferență între versiuni

De la Universitas MediaWiki
Linia 14: Linia 14:


== Restricţii şi precizări ==
== Restricţii şi precizări ==
* 0 < '''n''' ⩽ 10
2 ≤ '''k''' ≤ 1.000.000.000
 
pentru toate valorile lui '''k''' utilizate în teste există cel puţin o soluţie


== Exemplul 1 ==
== Exemplul 1 ==

Versiunea de la data 3 aprilie 2023 12:34

Sursa: [1]

Cerinţa

Se dă un număr natural, k. Să se determine toate perechile de numere naturale nenule x, y (x<=y), cu proprietatea că x2+y2=k .

Date de intrare

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

Date de ieșire

Programul afișează perechile x, y determinate, câte o pereche pe o linie a ecranului, în ordinea crescătoare a valorii lui x.

Dacă datele sunt introduse corect, programul va rula.

În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

2 ≤ k ≤ 1.000.000.000

pentru toate valorile lui k utilizate în teste există cel puţin o soluţie

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576



Rezolvare

#4273
def patrate_perfecte(n):
    patrate = []
    i = 1
    while len(patrate) < n:
        patrat = i * i
        patrate.append(patrat)
        i += 1
    return patrate


def calculeaza(numbers):
    product = 1
    for number in numbers:
        product *= number
    return product


def validare_numar(n):
    if n < 1 or n > 10:
        return False
    return True


if __name__ == '__main__':
    n = int(input("Introduceți numărul n: "))
    if not validare_numar(n):
        print("Datele introduse nu corespund cerintelor.")
    else:
        squares = patrate_perfecte(n)
        product = calculeaza(squares)
        print("Datele introduse corespund cerintelor.")
        print(product)