在线编译器 C

#include <stdio.h> void print_simple(int n) { for(int i=2;i<=n;i++) { while(n%i==0) { printf("%d",i); n=n/i; } } } int main() { int num; scanf("%d",&num); printf_simple(num); return 0; }
这段代码试图将一个整数分解为质因数并打印出来。函数 `print_simple` 的逻辑基本正确,但存在几个问题。

- 在 `main` 函数中,你调用了 `printf_simple(num)`,但函数名是 `print_simple`,这里写错了函数名,导致编译错误。
- 质因数打印时,每个因数之间没有分隔符,比如输入12会输出“223”,而不是“2 2 3”或“2*2*3”,这可能会让输出难以理解。
- 函数 `print_simple` 没有返回值,但定义时没有写 `void` 吗?实际上你写了 `void`,所以返回类型没问题,但注意函数调用时不要拼写错误。