在线编译器 C

#include <stdio.h> int is_prime(int n, int delitel) { if (n == 1) { return 1; } else { if (delitel * delitel > n) { return 1; } if (n % delitel == 0) { return 0; } return is_prime(n, delitel + 1); } } int main() { printf("%d", is_prime(1235, 2)); return 0; }
这段代码定义了一个递归函数 `is_prime`,用来判断一个整数是否为质数。它从除数2开始,检查n是否能被整除,或者除数平方是否超过n。主函数测试了1235这个数。

- 函数对n=1返回1,但1通常不被认为是质数。检查一下质数的定义,看看1应该返回什么。
- 递归调用时,每次除数加1,但这样会检查所有除数,包括偶数。思考一下,如果n是偶数且大于2,是否还有必要递归到更大的除数?