酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

要求实现一个函数prime, 可判断一个整数是否为素数(一个正整数,除了1和本身之外再没因子,那么它就是素数。1不是素数,2是素数)。若一个数为素数,该函数应该返回非零埴,否则返回零。 当从键盘输入m和n的值,main求出[m,n]之间的素数和。 函数接口定义: int prime ( int k ); k 的值不超过int的范围,函数须返回非零值或零。 裁判测试程序: #include <stdio.h> #include<math.h> int prime( int k ); int main() { int n,m,i,sum=0; scanf("%d%d", &m,&n); for(i=m;i<=n;i++) if(prime(i)) sum=sum+i; printf("%d",sum); return 0; } /* 你提交的代码将被嵌入到该行的下面 */

```c #include <stdio.h> #include<math.h> int prime (int k) { if (k <= 1) { // 小于等于 1 的数不是素数 return 0; } int i; for (i = 2; i <= sqrt(k); i++) { // 只需要遍历到 k 的平方根 if (k % i == 0) { // 如果能整除,就不是素数 return 0; } } return 1; // 都不能整除就是素数 } ``` 额外注意的逻辑点: 1. 注意判断素数时,循环的边界是到 k 的平方根。 2. 要考虑输入的 k 值可能为负数或 0 的情况。 3. 对于函数的返回值,严格按照题目要求,是素数返回 1,不是素数返回 0 。 [2024-12-15 23:01:53 | AI写代码神器 | 214点数解答]

相关提问