不必想方设法求出哪一对长宽最接近,从最小开始遍历枚举,令宽小于等于长,第一个得出的结果必定是最接近的,越大差值越大,越小差值越小。(必有一组结果为1 和 n 所以不用担心return的问题)。 #include <stdio.h>
int main(void){
int n;
scanf("%d",&n);
for(int a=1;a<=n;a++){
for(int b=1;b<=a;b++){
if(a*b==n){
printf("%d %d",b,a);
return 0;
}
}
}