Closest to a square
05AB1E, 3 bytes
Given an input \$ c \$, it outputs \$ a \$ and \$ b \$ as a list in increasing order. If \$ c \$ is a square, it outputs a single integer (which according to the OP is allowed).
ÑÅs
Try it online!
Explanation
Ñ # All divisors
Ås # Middle elements
JavaScript (ES7), 35 bytes
f=(n,d=n**.5)=>n%d?f(n,-~d):[d,n/d]
Try it online!
How?
If \$n\$ is a square, \$d=\sqrt{n}\$ is an integer which obviously divides \$n\$, so we immediately have an answer. Otherwise, the first -~d
will act as \$\lceil{d}\rceil\$ and the next ones as \$d+1\$. Either way, we stop as soon as \$n\equiv 0\pmod{d}\$ which in the worst case (i.e. if \$n\$ is prime) happens when \$d=n\$.
Python 2, 45 bytes
i=n=input()
while(i*i>n)+n%i:i-=1
print n/i,i
Try it online!