Online Compiler C

#include <stdio.h> void print_simple(int n) { int x = 2; while (n > 0) { if (n % x == 0) { printf("%d ", x); } n = n / x; if (n % x != 0) { x++; } } } int main() { return 0; }
这段代码试图打印一个整数的质因数分解,但逻辑有误。当前代码会不断用x去除n,但每次除法后都立即检查x是否还能整除n,这导致分解过程不正确。

- 当找到一个因数x时,应该用循环反复除以x,直到不能再整除,而不是只除一次就跳到下一个x。
- 循环条件while (n > 0)会导致无限循环,因为n最终会变成1,但1大于0,循环不会停止。应该用while (n > 1)或类似条件。