用C语言写出以下程序:输入2个自然数A,B: 1.输出[A,B]范围内的素数个数。 2.按从小到大的顺序输出这两个数之间的所有公因数。
时间: 2024-10-22 21:06:54 浏览: 29
在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 print_factors(int a, int b) {
printf("公因数列表(从小到大):\n");
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 n = A; n <= B; ++n) {
if (is_prime(n))
prime_count++;
}
printf("在[%d,%d]范围内,共有 %d 个素数。\n", A, B, prime_count);
// 公因数输出
print_factors(A, B);
return 0;
}
```
阅读全文