题目描述
输入一组勾股数a,b,c(三者不等),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
代码如下:
a,b,c=map(int,input().split())
if a>b:
a,b=b,a
if b>c:
b,c=c,b
#探究共同公因数
#差数约分法
m = []
for i in range(1,a+1):
if a%i==0 and c%i==0:
m.append(i)
n=max(m)
a=a/n
c=c/n
print("{}/{}".format(int(a),int(c)))
首先我们先将abc三者进行由小到大的排序,然后利用枚举算法找出ac的最大公因数,然后进行化简最后用format()函数进行输出。重要的是求最大公因数,下面还有一个简单的算法:
ef find_gcd(a, b):
if a<b:
a,b=b,a
while b!=0:
a,b=b,a%b
return a
# 在此处编写代码
# 输入整数
first_number = int(input())
second_number = int(input())
# 调用函数
print(find_gcd(first_number, second_number))
这个也是先按照大小排序,然后用辗转相除法求最大公因数,又称欧几里德算法(Euclidean Algorithm),是求两个数的最大公约数(greatest common divisor)的一种方法。用较大的数除以较小的数,再以除数和余数反复做除法运算,当余数为0时,取当前算式除数为最大公约数。
谢谢您的观看希望对您有帮助!