#!/usr/bin/env python # -*- coding: utf-8 -*- import sys, math, cmath if len(sys.argv) != 4: sys.exit(u"Usage: %s a b c" % sys.argv[0]) print u"Square equation: %s · xІ + %s · x + %s = 0" % tuple(sys.argv[1:]) a = float(sys.argv[1]) b = float(sys.argv[2]) c = float(sys.argv[3]) if a == 0 and b == 0 and c == 0: sys.exit(u"C") if b == 0 and c == 0: sys.exit(u"Root: 0") if a == 0 and c == 0: sys.exit(u"Root: 0") if a == 0 and b == 0: sys.exit(u"No root") if c == 0: print u"Root1: 0" sys.exit(u"Root2: " + str(- b / a)) if b == 0: if c > 0: print u"Root1: " + str(math.sqrt(- c / a)) sys.exit(u"Root1: " + str(- math.sqrt(- c / a))) else: print u"Root1: " + str(cmath.sqrt(- c / a)) sys.exit(u"Root1: " + str(- cmath.sqrt(- c / a))) if a == 0: sys.exit(u"Root:" + str(- c / b)) d = b * b - 4 * a * c if d < 0: print u"Root 1:" + str((- b + cmath.sqrt(d)) / (2 * a)) sys.exit(u"Root2:" + str((- b - cmath.sqrt(d)) / (2 * a))) else: print u"Root 1:" + str((- b + math.sqrt(d)) / (2 * a)) sys.exit(u"Root2:" + str((- b - math.sqrt(d)) / (2 * a)))