其中 。
中国南宋末年数学家秦九韶发现或知道等价的公式,其著作《数书九章》卷五第⼆题即三斜求积。“问沙
⽥⼀段,有三斜,其⼩斜⼀⼗三⾥,中斜⼀⼗四⾥,⼤斜⼀⼗五⾥,⾥法三百步,欲知为⽥⼏何?”答
⽈:“三百⼗五顷.”其术⽂是:“以⼩斜幂并⼤斜幂,减中斜幂,余半之,⾃乘于上;以⼩斜幂乘⼤斜
幂,减上,余四约之为实,……开平⽅得积。”若以⼤斜记为 ,中斜记为, ⼩斜记为 ,秦九韶的⽅法
相当于下⾯的⼀般公式:
其中 。
11. 计算最⼤公约数和最⼩公倍数
输⼊为两个正整数。最⼤公约数:(Greatest Common Divisor),也称最⼤公因数、最⼤公因⼦,指
两个或多个整数共有约数中最⼤的⼀个,简称gcd。最⼩公倍数;两个整数公有的倍数称为它们的公倍
数,其中最⼩的⼀个正整数称为它们两个的最⼩公倍数(Least Common Multiple),简称lcm。
最⼩公倍数=两数的乘积/最⼤公约(因)数。最⼤公约数可以使⽤欧⼏⾥
得算法即辗转相除法求得,gcd(a,b) = gcd(b,a mod b)。mod == % 。
函数版:
import math
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a + b > c and a + c > b and b + c > a:
print('周⻓: %.2f' % (a + b + c))
p = (a + b + c) / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print('⾯积: %.2f' % (area))
else:
print('不能构成三⻆形')
x = int(input('x = '))
y = int(input('y = '))
# 设置 x 为⼩的数
if x > y:
x, y = y, x
for factor in range(x, 0, -1):
if x % factor == 0 and y % factor == 0:
print('%d和%d的最⼤公约数是%d' % (x, y, factor))
print('%d和%d的最⼩公倍数是%d' % (x, y, x * y // factor))
# 最⼩公倍数或者可以写成下⾯
print('%d和%d的最⼩公倍数是%d' % (x, y, x / factor * y))
break