问题描述
古埃及曾经创造出灿烂的人类文明,他们的分数表示却很令人不解。
古埃及喜欢把一个分数分解为类似: 1/a + 1/b 的格式,这里,a 和 b 必须是不同的两个整数,分子必须为 1
比如,2/15 一共有 4 种不同的分解法(姑且称为埃及分解法):
- 1/8 + 1/120
- 1/9 + 1/45
- 1/10 + 1/30
- 1/12 + 1/20
那么, 2/45
一共有多少个不同的埃及分解呢(满足加法交换律的算同种分解)? 请直接提交该整数(千万不要提交详细的分解式!)。
答案提交
请严格按照要求,通过浏览器提交答案。
注意:只提交分解的种类数,不要写其它附加内容,比如:说明性的文字
答案:7
题解:
如果把判断的条件改成:1.0 / a + 1.0 / b == 2.0 / 45 就会出错,因为除法有时候不够精确,所以遇到除法,就要将其转化为乘法。
#include <iostream>
using namespace std;
int main()
{
int ans = 0;
for (int a = 2; a < 2000; a ++)
for (int b = a + 1; b < 2000; b ++)
if(2 * (a * b) == 45 * (a + b)) ans ++;
cout << ans << endl;
return 0;
}