Online Compiler C

#include <stdio.h> void print_simple(int n) { int num = 2, result; while (n > 1) { result = n % num; if (result == 0) { printf("%d ", num); n = n / num; } else { num++; } } } int main() { int x; scanf("%d", &x); print_simple(x); return 0; }
这段代码的功能是:输入一个整数,输出它的所有质因数(从小到大,重复的质因数也会重复输出)。

代码逻辑是:从最小的质数2开始,不断用当前数n除以num,如果能整除就输出num并更新n,否则num递增。

- 注意:当输入为1时,while循环条件n > 1不成立,函数不会输出任何内容。但题目可能要求对1有特殊处理,比如输出"1"或空行,需要根据题目要求判断。
- 另外,如果输入是质数本身,比如输入7,代码会输出"7 ",这是正确的。但注意输出末尾会多一个空格,如果题目要求严格格式,可能需要调整。