用C语言编写:判断一个数是否是素数。 输入描述 一个大于1且小于100000000的整数m。 输出描述 如果m不在规定的数值范围(大于1且小于100000000)之内,则输出“input error!”; 如果m是素数,输出“prime”,否则请输出“not prime”。
时间: 2024-11-27 22:24:32 浏览: 29
在C语言中,我们可以使用经典的试除法来判断一个数是否为素数。以下是实现这个功能的一个简单函数:
```c
#include <stdbool.h>
bool is_prime(int m) {
// 检查输入范围
if (m <= 1 || m >= 100000000) {
printf("input error!\n");
return false;
}
// 2是最小的质数,所有偶数除了2以外都不是质数
if (m == 2 || (m % 2 == 0 && m != 2)) {
return true; // 质数
}
// 从3开始到sqrt(m),步长为2,只检查奇数因子
for (int i = 3; i * i <= m; i += 2) {
if (m % i == 0) {
return false; // 非质数,有因子
}
}
return true; // 如果没有找到因子,那么m就是质数
}
// 主程序示例
int main() {
int num;
printf("Enter a number between 1 and 100000000: ");
scanf("%d", &num);
if (is_prime(num)) {
printf("prime\n");
} else {
printf("not prime\n");
}
return 0;
}
```
当你运行这个程序并输入一个数字时,它会检查该数字是否为素数,并按照描述给出相应的结果。如果你输入了一个超过范围的数,它将显示"input error!"。
阅读全文