/ WHOJ / 题库 /

卵石矩阵(文件IO)

卵石矩阵(文件IO)

题目描述

Dave 最近收集了一些有趣的鹅卵石,他想把它们排成一个矩阵,但希望矩阵的行数与列数和最小(注意,鹅卵石的个数可能小于矩阵的行列相乘的结果,如鹅卵石的个数为 \(14\),则可以排成 \(2×7\) 的矩阵,也可以排成 \(3×5\) 的矩阵,也可以排成 \(4×4\) 的矩阵,后两个解中,矩阵的总面积大于鹅卵石的个数,而且 \(3+5=4+4<2+7\),所以 \(3\) \(5\) 和 \(4\) \(4\) 是本例的解)。即输入\(n\),找出当 \(a×b≥n\) 时,\(a+b\) 的最小值。编程帮助 Dave 找到这样的方案。

格式

输入格式

第一行为正整数 \(t(≤50)\),表示数据组数;接下来 \(t\)行,每行一个正整数 \(N\),表示鹅卵石的总数。\((1≤N≤10^5)\)

输出格式

对于每组数据,输出所有满足条件的矩阵行列数,每一行表示一个解,每个解中,矩形边长按从小到大的顺序输出,所有的解中,按第一个数从小到大排序。

样例1

输入样例1

2
14
150

输出样例1

3 5
4 4
10 15
11 14
12 13

样例解释

样例 \(2\) 中,\(10×15=150,11×14=154,12×13=156\) 均为符合条件的长方形,且 \(10+15=11+14=12+13=25\) 为最小的长 \(+\) 宽之和。

来源

地址:芜湖市二十七中电脑班刷题课
作者:汪老师
模拟赛\(T2\)

文件IO

freopen("icon.in","r",stdin);
freopen("icon.out","w",stdout);