C语言 使用穷举法并分别用for、while、循环语句求出N~M之间的质数。
时间: 2024-04-09 10:28:01 浏览: 95
穷举法解迷宫问题(C语言)
好的,让我来为您解答。
首先,让我们了解一下什么是质数。质数是指除了1和自身外没有其他因数的正整数。
下面是使用穷举法(也称为暴力搜索法)并分别使用for、while循环语句求出N~M之间的质数的C语言代码:
使用for循环语句:
```c
#include <stdio.h>
int main() {
int N, M, i, j;
printf("请输入N和M的值:");
scanf("%d %d", &N, &M);
printf("N到M之间的质数有:");
for (i = N; i <= M; i++) {
// 判断i是否为质数
int isPrime = 1; // 假设i是质数
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = 0; // i能被j整除,不是质数
break;
}
}
if (isPrime && i != 1) {
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之间的质数有:");
i = N;
while (i <= M) {
// 判断i是否为质数
int isPrime = 1; // 假设i是质数
j = 2;
while (j <= i / 2) {
if (i % j == 0) {
isPrime = 0; // i能被j整除,不是质数
break;
}
j++;
}
if (isPrime && i != 1) {
printf("%d ", i);
}
i++;
}
return 0;
}
```
以上代码中,我们通过两层循环遍历从N到M之间的每个数,判断每个数是否为质数。如果是质数,则输出。
希望能解答您的问题!如果还有其他问题,请随时提问。
阅读全文