python: ValueError: math domain errоr не запускается код

>>> import math
>>> from math import sqrt
>>> a=float(input("Введите а "))
Введите а 12
>>> b=float(input("Введите b "))
Введите b 4
>>> c=float(input("Введите с "))
Введите с 6
>>> p=(a+b+c)/2
>>> s=sqrt(p*(p-a)*(p-b)*(p-c))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error

Почему так происходит? Помогите исправить ошибку


Ответы (1 шт):

Автор решения: Даня

p*(p-a)(p-b)(p-c) = -385.0
В рамках действительных чисел корень из отрицательного числа извлечь нельзя, как нельзя построить квадрат отрицательной площади. В рамках действительных чисел это просто бессмыслица. Точно так же в рамках действительных чисел нельзя извлекать корни любой четной степени (а нечетной -- можно).

→ Ссылка