一个数的如果是合数,必定可以写成c = a X b,而a或者b其中必定有一个数小于等于c的开平方
比如16 = 1X16=2X8=4X4
所以只需要找出最小值中的最大值就行

#include <stdio.h>
#include <math.h>
int main()
{
    int i,n,max;
    max = 0;
    scanf("%d", &n);
    for (i = 1;i<=sqrt(n);i++)
    {
        if (n % i == 0)
            max = i;
    }
    printf("%d %d", max, n/max);
    return 0;
}