【解析】分成两段
int main()
{
int n;
while (scanf("%d", &n) == 1) {
int i, end = sqrt(n * 1.0) + 1;
int ans[10005], index = 0;
int flag = -1;
for (i = 1; i <= end; ++i) {
if (n % i == 0) {
printf("%d\n", n / i);
ans[index++] = i;
flag = n / i;
}
}
for (i = index - 1; i >= 0; --i) {
if (flag != -1 && flag > ans[i])
printf("%d\n", ans[i]);
}
printf("\n");
}
return 0;
}