问题描述
编写程序,输入一个正整数m,找到所有的正整数x和y(其中x ≥ y),使得1/m = 1/x + 1/y。
输入格式
第1行包含一个整数n,代表有n组测试数据。
接下来的n行每行包含一个正整数m。
输出格式
按顺序输出对应每行的m找到所有满足条件1/m=1/x+1/y的组合。
如果某个m值找到多种组合,则按照x由大到小的顺序输出。
数据规模与约定
n的值约定为 1 ≤ n ≤ 10。
m的值约定为 2 ≤ m ≤ 100。
样例输入
2
3
12
样例输出
1/3=1/12+1/4
1/3=1/6+1/6
1/12=1/156+1/13
1/12=1/84+1/14
1/12=1/60+1/15
1/12=1/48+1/16
1/12=1/36+1/18
1/12=1/30+1/20
1/12=1/28+1/21
1/12=1/24+1/24
示例
int main()
{
int m, mm;
int n = 0;
scanf("%d", &n);
while (n--) {
scanf("%d", &m);
int m2 = m * m;
for (int i = 1; i < m2; i++)
{
if (2 * m <= m2 / i + m) {
if (m2 % i == 0) {
mm = m2 / i + m;
printf("1/%d=1/%d+1/%d\n", m, m2 / i + m, i + m);
}
}
else
break;
}
}
return 0;
}