#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int s;
    cin>>s;
    int c,k;
    int t=0;
    for(int i=1;i<=s;i++)//kuan
    {
        for(int j=s/i;j>=i;j--)//chang
        {
            if(i*j==s)
            {
                t=min(t,abs(i-j));
                k=i;
                c=j;
            }
        }
    }
    cout<<k<<" "<<c<<endl;
}

首先明确要求:
长和宽最大程度接近->以绝对值最小代替
宽不能大于长(这里有一个小小的坑)
一般矩形我们很容易解决(控制宽长关系在循环中即可,简洁)
这时候你就要想:正方形算不算矩形呢?肯定的,但是正方形长宽相等啊,所以
坑就在这:宽≤长
再想,数据范围有1,那个1你怎么解决?
我是直接扩大i遍历范围,懒