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

#include <stdio.h> int is_prime(int n, int delitel) { if (delitel * delitel > n) { return 1; } else if (n % delitel == 0) { return 0; } return is_prime(n, delitel + 1); } int main() { printf("%d", is_prime(1235)); return 0; }
这段代码定义了一个递归函数 `is_prime` 来判断一个数是否为质数,但 `main` 函数中调用时只传了一个参数,而函数需要两个参数,所以编译会报错。

- 函数 `is_prime` 需要两个参数:待判断的数 `n` 和当前的除数 `delitel`。在 `main` 中调用时,你需要提供第二个参数,比如从 2 开始。
- 递归的终止条件已经正确:当除数的平方大于 `n` 时返回 1(表示质数),当 `n` 能被当前除数整除时返回 0(表示非质数)。但注意,如果 `n` 小于 2,这个函数会返回错误结果,因为 0 和 1 不是质数。