从sqrt(n)枚举到1,一旦满足一定是差最小的数。
AC代码:
#include<cstdio>
#include<cmath>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int h=(int)sqrt(n);
for(int i=h;i>0;--i){
if(n%i==0) {
printf("%d %d\n",i,n/i);
break;
}
}
}
return 0;
}
如有不当之处欢迎指出!