2928 - SqrtXXL

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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()