C语言 使用穷举法并分别用for、while、循环语句求出N~M之间的质数。
时间: 2024-04-09 18:28:01 浏览: 10
好的,我来帮你解答。
首先,我们需要明确一下质数的定义:质数指的是只能被1和自身整除的自然数,大于1的自然数中只有2是偶数,其他质数都是奇数。
下面是使用穷举法,并分别使用for、while循环语句来求解N到M之间的质数的示例代码:
使用for循环语句:
```c
#include <stdio.h>
int main() {
int N, M, i, j;
printf("请输入N和M的值(以空格分隔):");
scanf("%d %d", &N, &M);
printf("N到M之间的质数有:\n");
for (i = N; i <= M; i++) {
if (i == 1)
continue; // 排除1
int isPrime = 1; // 标记是否为质数
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = 0; // 不是质数
break;
}
}
if (isPrime)
printf("%d ", i);
}
return 0;
}
```
使用while循环语句:
```c
#include <stdio.h>
int main() {
int N, M, i, j;
printf("请输入N和M的值(以空格分隔):");
scanf("%d %d", &N, &M);
printf("N到M之间的质数有:\n");
i = N;
while (i <= M) {
if (i == 1) {
i++;
continue; // 排除1
}
int isPrime = 1; // 标记是否为质数
j = 2;
while (j <= i / 2) {
if (i % j == 0) {
isPrime = 0; // 不是质数
break;
}
j++;
}
if (isPrime)
printf("%d ", i);
i++;
}
return 0;
}
```
以上两段代码分别使用了for和while循环语句来实现质数的穷举求解。你可以根据需要选择其中一种方式来使用。代码中使用了两层循环,外层循环用于遍历N到M之间的数字,内层循环用于判断当前数字是否为质数。如果满足质数的条件,则输出该数字。
希望能帮到你!如果有任何问题,请随时提问。