设长为a,宽为b,则由题意可知:ab=n且a>=b,推出a>=根号n(sqrt函数)。

再运用向上取整函数ceil(double x)找到a的起始值,两层循环暴力搜索找到值后直接结束。

#include<stdio.h>
#include<math.h>
int main() {
	double n, a, b;
	scanf("%lf", &n);
	for (a = ceil(sqrt(n)); a <= n; a++)
		for (b = a; b >= 1; b--) //要使a,b大小尽量接近,所以从中心向两边遍历
			if (a * b == n) {
				printf("%.0lf %.0lf", b, a);
				return 0;
			}
	return 0;
}