Онлайн компилятор C

#include <stdio.h> void print_simple(int n) { int i; for (i = 2; i * i <= n; i++) { while (n % i == 0) { printf("%d ", i); n = n / i; } }if(n>1) printf("%d ", n); } int main() { print_simple(5); return 0; }
这段代码实现了一个函数 `print_simple`,用于将一个正整数分解为质因数,并打印出来。它从最小的质数2开始,不断检查当前数是否能被i整除,如果能就打印i并除以i,直到不能整除为止。循环结束后,如果剩下的n大于1,说明它本身是一个质数,也打印出来。主函数中调用 `print_simple(5)` 会输出 "5 "。

- 你的代码逻辑基本正确,但注意在 `while` 循环之后,`if(n>1)` 的格式缺少空格,建议加上空格使代码更清晰,比如 `if (n > 1)`。
- 考虑一下,如果输入的数字是1,你的代码会输出什么?是否需要处理这种情况?