请直接用C语言编写一个程序: 输入2个自然数A,B: 1.输出[A,B]范围内的素数个数。 2.按从小到大的顺序输出这两个数之间的所有公因数。 输入样例 4 8 输出样例 2 1 2 4 说明 请使用for/while循环、for循环实现
时间: 2024-10-21 21:10:06 浏览: 13
以下是使用C语言编写的一个程序,它实现了输入两个自然数A和B,并计算它们之间的素数个数以及公因数:
```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_factors(int a, int b) {
printf("公因数:");
for (int i = 1; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
int A, B;
printf("请输入两个自然数A和B(用空格分隔):");
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);
// 公因数
find_factors(A, B);
return 0;
}
```
在这个程序中,`is_prime`函数用于判断是否为素数,`find_factors`函数找出并打印给定范围内两个数的所有公因数。注意这个程序使用了for循环来遍历数字范围和寻找素数及公因数。
阅读全文