出一道更难的只用选择判断的c语言题
时间: 2024-10-05 07:02:08 浏览: 28
题目描述:编写一个 C 语言程序,该程序包含一个函数 `isPrime`,其接受一个整数作为输入,仅使用选择判断(即循环结构,如 for 或 while 循环,不允许使用内建函数或库函数来检查素数),判断这个数是否为质数,并返回一个布尔值。同时,提供错误处理,如果输入不是正整数,则返回 false。
```c
#include <stdio.h>
// 定义 isPrime 函数,参数 n 为待检验的整数
int isPrime(int n) {
// 错误处理,非正整数直接返回 false
if (n <= 0) {
return 0;
}
// 从 2 开始到 n 的平方根(因为不需要大于 n 的因数)
int sqrt_n = (int)sqrt(n);
for (int i = 2; i <= sqrt_n; ++i) {
// 如果找到 n 的因子,说明 n 不是质数
if (n % i == 0) {
return 0;
}
}
// 没有找到因子,n 是质数
return 1;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d 是质数\n", num);
} else {
printf("%d 不是质数\n", num);
}
return 0;
}
```
阅读全文