2310. 直角三角形
1000ms
256MB
简单
枚举算法
题目描述
松鼠阿奇在魔法森林里收集到了一根长度为 $c$ 的魔法橡木枝。它计划用它为自己的树屋搭建一个直角三角形的滑滑梯支架。
为了保证滑滑梯的稳定性,支架的两条直角边 $a$ 和 $b$ 的长度必须都为**正整数**,且满足 $a \le b$(即底边不超过高度)。因为树屋的空间有限,阿奇希望占地面积尽可能小,所以要求**底边长 $a$ 尽可能小**。
已知斜边长度 $c$,请你编写程序帮阿奇计算出满足条件的直角边 $a$ 和 $b$ 的长度。
输入格式
一行,包含一个正整数 $c$ ($1 \le c \le 10000$)。
输出格式
一行,包含两个正整数 $a$ 和 $b$,中间用空格隔开。保证有整数解。如果有多个可能的答案,请确保 $a$ 尽可能的小。
样例 1
输入 (Input)
5
输出 (Output)
3 4
- 对于所有数据:$1 \le c \le 10000$。
- **提示**:
根据勾股定理:
$$a^2 + b^2 = c^2$$
由于需要让 $a$ 最小,可以通过循环让 $a$ 从 $1$ 开始递增枚举,计算出 $b = \sqrt{c^2 - a^2}$,判断 $b$ 是否为整数。因为 $a \le b$,所以循环的上限满足 $a^2 \le \frac{c^2}{2}$。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功