2928 - SqrtXXL

De la Universitas MediaWiki

Cerința

Se dă numărul real n. Calculați √n cu 8 zecimale exacte.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran √n cu 8 zecimale exacte.

Restricții și precizări

  • Dacă numărul citit este negativ se calculează ca pentru un număr pozitiv și se afișează i după el.
  • 1 ⩽ nrcif(n)+'.' ⩽ 100.001

Exemplu 1

Intrare
26
Ieșire
Datele de intrare corespund restricțiilor impuse
5.09901951


Exemplu 2

Intrare
-25
Ieșire
Datele de intrare corespund restricțiilor impuse
5.00000000i


Exemplu 3

Intrare
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse


Rezolvare

#2928 - SqrtXXL
import cmath

def calculate_square_root(n):
    if n < 0:
        result = cmath.sqrt(n)
        return f"{result.real:.8f}{result.imag:+.8f}i"
    else:
        result = cmath.sqrt(n)
        return f"{result.real:.8f}"

def main():
    try:
        n = float(input("Introduceti numarul n: "))
        if 1 <= len(str(n)) <= 100001:
            result = calculate_square_root(n)
            print(result)
        else:
            print("Datele de intrare nu corespund restricțiilor impuse")
    except ValueError:
        print("Datele de intrare nu sunt valide.")

if __name__ == "__main__":
    main()