C语言输入正整数 m ,判断 m 是否是素数。
时间: 2024-05-04 18:15:56 浏览: 122
好的,我了解了!对于您的问题,我可以给出以下 C 语言代码来判断一个正整数 m 是否为素数:
```
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int m) {
if(m < 2) {
return false; // 1 和负整数不是素数
}
for(int i = 2; i <= m/2; i++) {
if(m % i == 0) {
return false; // 能被除了1和它本身以外的数整除就不是素数
}
}
return true;
}
int main(void) {
int m;
printf("请输入一个正整数 m:\n");
scanf("%d", &m);
if(isPrime(m)) {
printf("%d 是素数!\n", m);
} else {
printf("%d 不是素数!\n", m);
}
return 0;
}
```
在这个程序中,我们使用了 `isPrime()` 函数来判断一个整数是否为素数。为了判断一个正整数 m 是否为素数,我们需要遍历从 2 到 m/2 的所有整数,判断 m 能否被这些整数整除。如果能被整除,那么 m 就不是素数;如果不能被整除,那么 m 就是素数。
对于输入的正整数 m,程序会读入并输出判断结果。
相关问题
c语言输入正整数 m=18 ,判断 m 是否是素数。
好的,我来回答您的问题。以下是判断正整数 m 是否是素数的 C 语言代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int m, i, is_prime = 1;
printf("请输入一个正整数 m:");
scanf("%d", &m);
if (m <= 1) {
is_prime = 0;
} else {
for (i = 2; i <= sqrt(m); i++) {
if (m % i == 0) {
is_prime = 0;
break;
}
}
}
if (is_prime) {
printf("%d 是素数。\n", m);
} else {
printf("%d 不是素数。\n", m);
}
return 0;
}
```
代码的思路是:如果 m 小于等于 1,则不是素数;否则,从 2 到 sqrt(m)(sqrt 表示开方)依次判断 m 是否能被整除,如果能被整除,则 m 不是素数。如果 2 到 sqrt(m) 都不能整除 m,则 m 是素数。
因此,如果输入正整数 m=18,程序会输出:
```
18 不是素数。
```
C语言输入正整数n判断是否为质数
在C语言中,判断一个正整数n是否为质数通常通过以下步骤实现:
1. 首先,定义一个函数`isPrime(n)`,它接受一个正整数n作为输入。
2. 确保输入n大于1,因为1不是质数。
3. 使用嵌套循环遍历从2到sqrt(n)的所有整数。如果n能被其中任何一个整数整除,说明n不是质数,直接返回0(表示非质数)。
4. 如果上述循环结束后都没有找到能整除n的因子,那么n就是质数,返回1(表示质数)。
以下是简单的C代码实现:
```c
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n <= 1) {
return 0; // 1不是质数
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d是质数。\n", num);
} else {
printf("%d不是质数。\n", num);
}
return 0;
}
```
阅读全文