Online Compiler C

#include <stdio.h> void print_simple(int n){ int i=2; for(n%i==0;i*i<=n;i++){ return i; n=n/i; } } int main() { printf("%d\n", print_simple(5)); return 0; }
这段代码试图实现一个打印质因数的函数,但存在多个问题。函数 `print_simple` 的返回类型是 `void`,却试图返回 `i`,而且循环条件和逻辑也不正确。

- 函数声明为 `void` 不返回任何值,但你在循环中写了 `return i;`,这会导致编译错误。你需要先确定函数应该返回什么,或者直接打印结果。
- 循环条件 `for(n%i==0;i*i<=n;i++)` 的写法有误。`for` 循环的第一个表达式应该是初始化,而不是条件判断。你应该先检查 `n` 是否能被 `i` 整除,再决定是否进入循环体。