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

#include <stdio.h> int is_prime(int n, int delitel) { if (delitel * delitel > n) { return 1; } else if (n % delitel == 0) { return 0; } is_prime(n, delitel + 1); } int main() { printf("%d", is_prime(1235)); return 0; }
这段代码试图用递归方式判断一个数是否为质数,但存在几个问题。

首先,`is_prime` 函数需要两个参数,但在 `main` 中调用时只传了一个参数,这会导致编译错误。其次,递归调用 `is_prime(n, delitel + 1)` 的返回值没有被使用,所以即使递归正确,最终结果也不会返回给调用者。

- 检查 `main` 中调用 `is_prime` 时是否缺少第二个参数,思考如何正确启动递归。
- 注意递归调用 `is_prime(n, delitel + 1)` 前面缺少 `return` 语句,导致函数没有返回值。