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

#include <stdio.h> int is_prime(int n){ if (n<=1){ return 0; } for (int i=2;i*i<=n;i++){ if (n%i==0){ return 0; } } return 1; }
这段代码定义了一个判断整数是否为质数的函数 `is_prime`。它先排除小于等于1的数,然后从2开始检查到平方根,如果找到能整除的因子就返回0(非质数),否则返回1(质数)。

- 函数逻辑是正确的,但注意在循环中 `i*i<=n` 可能对很大的 `n` 导致整数溢出,因为 `i*i` 的结果可能超过 `int` 的范围。可以考虑将条件改为 `i <= n/i` 来避免溢出。
- 另外,函数没有处理输入为负数的情况,虽然 `n<=1` 已经覆盖了,但可以思考是否需要对负数有更明确的处理。