编写函数,判断整数m是否为质数,c语言
时间: 2023-12-14 16:39:33 浏览: 118
以下是一个用 C 语言编写的判断整数 m 是否为质数的函数:
```c
#include <stdio.h>
#include <stdbool.h> // 使用 bool 类型需要引入该头文件
bool is_prime(int m) {
if (m <= 1) {
return false;
}
for (int i = 2; i * i <= m; ++i) {
if (m % i == 0) {
return false;
}
}
return true;
}
```
该函数返回一个布尔类型的值,如果 m 是质数则返回 true,否则返回 false。函数中的主要思路是从 2 到根号 m 的范围内枚举整数,判断是否存在 m 的因子,如果存在则说明 m 不是质数,否则说明 m 是质数。需要注意的是,特判 m 小于等于 1 的情况。
相关问题
n 由键盘输入。素数是只能被1和自身整除的整数。要求编写函数 判断自然数 x 是否为素数 c语言
以下是一个简单的 C 语言函数,用于判断自然数 x 是否为素数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int x) {
if (x <= 1) return false;
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) return false;
}
return true;
}
int main() {
int x;
printf("请输入一个自然数 x:");
scanf("%d", &x);
if (isPrime(x)) {
printf("%d 是素数\n", x);
} else {
printf("%d 不是素数\n", x);
}
return 0;
}
```
该函数使用了一个 bool 类型的返回值,表示 x 是否为素数。如果 x 是素数,函数返回 true,否则返回 false。
在函数内部,首先判断 x 是否小于等于 1,如果是,直接返回 false。然后使用一个 for 循环,枚举从 2 到 sqrt(x) 的所有整数 i,如果存在一个 i 能够整除 x,说明 x 不是素数,直接返回 false。如果循环结束后都没有找到能够整除 x 的 i,说明 x 是素数,返回 true。
最后,在主函数中读入一个自然数 x,调用 isPrime 函数判断是否是素数,输出结果。
输出2~ n 之间所有素数,并求 和, n 由键盘输入。素数是只能被 1和自身整除的整数。要求编写函数判断自然数 x 是否为素数 c语言
以下是 C 语言代码实现:
```c
#include <stdio.h>
// 判断自然数 x 是否为素数的函数
int is_prime(int x) {
if (x <= 1) {
return 0;
}
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入 n:");
scanf("%d", &n);
int sum = 0;
for (int i = 2; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
sum += i;
}
}
printf("\n素数和为:%d\n", sum);
return 0;
}
```
首先定义了一个函数 `is_prime`,用于判断一个自然数是否为素数。接着在主函数中,从 2 开始遍历到输入的 n,对于每个数,如果它是素数,则输出并累加素数和。
阅读全文