编写函数,判断指针p所指数据是否为素数,若是返回1,否则返回0。 函数接口定义: int isprime ( int *p );
时间: 2024-02-11 18:08:45 浏览: 59
好的,以下是函数的实现代码:
```c
int isprime(int *p) {
int i;
if (*p <= 1) { // 小于等于1的数都不是素数
return 0;
}
for (i = 2; i * i <= *p; i++) { // 判断是否为素数
if (*p % i == 0) {
return 0; // 可以被整除则不是素数,返回0
}
}
return 1; // 否则为素数,返回1
}
```
函数使用了指针参数来判断给定的数是否为素数。在函数中,首先判断给定的数是否小于等于 1,如果是则不是素数,返回 0。接着使用循环判断给定的数是否能被 2 ~ sqrt(n) 中的任何一个数整除,如果可以则不是素数,返回 0;否则为素数,返回 1。
例如,判断数 17 是否为素数,可以这样调用函数:
```c
int n = 17;
if (isprime(&n)) {
printf("%d 是素数\n", n);
} else {
printf("%d 不是素数\n", n);
}
```
输出结果为:
```
17 是素数
```
希望能够帮到你!
相关问题
编写函数,判断指针p所指数据是否为素数,若是返回1,否则返回0。 函数接口定义: int isprime ( int *p );c语言
函数实现如下:
```c
int isprime(int* p) {
int num = *p;
if (num <= 1) { // 1和0都不是素数
return 0;
}
for (int i = 2; i <= sqrt(num); i++) { // 从2到sqrt(num)逐个判断是否能被整除
if (num % i == 0) {
return 0;
}
}
return 1; // 若都不能被整除,则为素数
}
```
该函数首先将指针p所指的数据赋值给变量num。如果num小于等于1,则不是素数,返回0。否则,从2到sqrt(num)逐个判断是否能被整除,若能被整除,则不是素数,返回0。如果都不能被整除,则为素数,返回1。
C语言编写函数,判断指针p所指数据是否为素数,若是返回1,否则返回0。 函数接口定义: int isprime ( int *p ); 裁判测试程序样例: #include <stdio.h> int isprime ( int *p ); int main() { int a[100], n, s=0, *q; scanf("%d", &n); for (q=a; q<a+n; q++) scanf("%d", q); for (q=a; q<a+n; q++) s = s + isprime(q); printf("%d", s); return 0; } /* 请在这里填写答案 */
下面是函数的实现代码:
```c
int isprime(int *p) {
int num = *p;
if (num == 1) return 0;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
```
函数的思路是先判断指针所指的数据是否为1,如果是1直接返回0,因为1不是素数。然后从2到该数的平方根进行遍历,如果存在能够整除该数的因子,说明该数不是素数,返回0;否则返回1,表示该数是素数。
阅读全文