1961 - Cosmin

De la Universitas MediaWiki

Sursa: [1]

Cerinţa

Cosmin e pasionat de matematică. Acesta spune despre numărul x că e un număr special și că de acum încolo îl va numi “numărul lui Cosmin”.

Numărul x este un număr real cu proprietatea că:

x=5⋅2–√–7 Profesorul de informatică îi dă ca temă lui Cosmin să creeze un program care citește numărul natural n și afișează pe ecran primele n zecimale ale lui xn, în ordinea în care apar.

Ajutați-l pe Cosmin!

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran primele n zecimale ale lui xn, în ordinea în care apar, fără spații.

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează pe ecran primele n zecimale ale lui xn, în ordinea în care apar.

În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."

Restricţii şi precizări

1 ≤ n ≤ 100.000

Exemplul 1

Datele de intrare
Introduceti numarul de zecimale:
1
Datele de ieșire
Datele sunt introduse corect.
Primele 1 cifre ale valorii aproximate pentru radicalul de 2 sunt: 0


Rezolvare

#1961
import math


def get_input_values():
    n = int(input("Introduceti numarul de zecimale: "))
    sqrt2 = math.sqrt(2)
    x = 5 * sqrt2 - 7
    return (n, sqrt2, x)


def calculate_result(x, n):
    x_pow_n = pow(x, n)
    result = str(x_pow_n)[:n]
    return result


def print_result(n, result):
    print("Datele sunt introduse corect.")
    print(f"Primele {n} cifre ale valorii aproximate pentru radicalul de 2 sunt: {result}")


if __name__ == '__main__':
    # Restrictii: 1 ≤ n ≤ 100.000
    n = int(input("Introduceti numarul de zecimale: "))
    if n < 1 or n > 100000:
        print("Datele nu corespund restricțiilor impuse.")
        exit()

    sqrt2 = math.sqrt(2)
    x = 5 * sqrt2 - 7

    result = calculate_result(x, n)
    print_result(n, result)

Explicatie cod:

Funcția 1: get_input_values() Această funcție va citi valorile pentru numărul de zecimale, aproximația radicalului de 2 și valoarea lui x. Ea va returna aceste valori sub forma unei liste/tupluri.

Funcția 2: calculate_result(x, n) Această funcție va calcula valoarea lui x la puterea n și va returna primele n cifre sub forma unui string.

Funcția 3: print_result(n, result) Această funcție va afișa rezultatul formatat.

Funcția principală: main() Această funcție va apela celelalte funcții pentru a obține și afișa rezultatul final.