用c语言编译:定义一个函数判断一个整型是否为素数,函数需要验证数据的合法性,如果小于等于0返回-1,如果是素数返回1,不是素数返回0。在主函数中输入数据输出结果
时间: 2024-05-13 11:16:22 浏览: 8
以下是用C语言编译的代码:
```c
#include <stdio.h>
#include <math.h>
int isPrime(int num) {
if (num <= 0) {
return -1; // 数据不合法,返回-1
}
if (num == 1) {
return 0; // 1不是素数,返回0
}
int limit = sqrt(num);
for (int i = 2; i <= limit; i++) {
if (num % i == 0) {
return 0; // 不是素数,返回0
}
}
return 1; // 是素数,返回1
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
int result = isPrime(num);
if (result == 1) {
printf("%d是素数\n", num);
} else if (result == 0) {
printf("%d不是素数\n", num);
} else {
printf("数据不合法\n");
}
return 0;
}
```
首先,我们定义了一个名为 `isPrime` 的函数,用于判断一个整数是否为素数。在函数内部,我们首先验证了数据的合法性,如果小于等于0,就返回-1。接着,我们判断了1是否为素数,如果是1,就返回0。然后,我们使用一个for循环遍历2到num的平方根之间的所有整数,如果num能够被其中的某个数整除,就表示num不是素数,返回0。最后,如果for循环结束后仍然没有返回0,就表示num是素数,返回1。
在主函数中,我们首先使用 `scanf` 函数从用户输入中读取一个整数。然后,我们调用 `isPrime` 函数判断该整数是否为素数,并将结果保存在变量 `result` 中。最后,根据 `result` 的值输出相应的结果。
注意,为了使用 `sqrt` 函数计算平方根,我们需要在代码开始处添加 `math.h` 头文件的引用。