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

#include <stdio.h> void print_simple(int n) { for (int i = 2; i * i <= n; i++) { while (n % i == 0) { printf("%d",i); } } if (n > 1) { printf("n"); } return ; }
这段代码试图打印一个整数的所有质因数,但存在几个问题。

- 在 `while` 循环中,当 `n` 能被 `i` 整除时,你打印了 `i`,但没有更新 `n` 的值,这会导致无限循环。
- 最后的 `if` 条件中,你打印的是字符 `"n"` 而不是变量 `n` 的值。
- 质因数之间没有分隔符,输出会连在一起。

- 在 `while` 循环内部,每次整除后需要将 `n` 除以 `i`,否则循环不会结束。
- 检查 `if (n > 1)` 时,应该打印 `n` 的值,而不是字符 `"n"`。