用C语言编写一个程序:输入2个自然数A,B: 1.输出[A,B]范围内的素数个数。 2.按从小到大的顺序输出这两个数之间的所有公因数。 输入样例 4 8 输出样例 2 1 2 4 说明 请使用for/while循环、for循环实现
时间: 2024-10-21 14:09:55 浏览: 26
C语言的100个经典算法
在C语言中,我们可以创建一个程序来实现上述功能。首先,我们需要编写一个函数来判断一个数是否是素数,然后计算指定范围内素数的数量,并找出两个数之间的所有公因数。以下是完整的代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断一个数是否是素数
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) { // 只需检查到其平方根
if (num % i == 0)
return false;
}
return true;
}
// 找出两个数之间的所有公因数
void find_common_factors(int a, int b) {
int min = a > b ? b : a;
for (int i = min; i >= 1; i--) {
if (a % i == 0 && b % i == 0)
printf("%d ", i);
}
printf("\n");
}
int main() {
int A, B;
printf("请输入两个自然数A和B:\n");
scanf("%d %d", &A, &B);
// 素数计数
int prime_count = 0;
for (int i = A; i <= B; i++) {
if (is_prime(i))
prime_count++;
}
printf("在[%d, %d]范围内的素数个数为:%d\n", A, B, prime_count);
// 公因数输出
printf("按从小到大的顺序输出的公因数有:\n");
find_common_factors(A, B);
return 0;
}
```
**运行该程序并提供输入样例**:
```sh
./your_program_name 4 8
```
**预期输出**:
```
在[4, 8]范围内的素数个数为:2
按从小到大的顺序输出的公因数有:
1 2 4
```
阅读全文