用C语言编写以下功能的函数,在主函数中调用并作输出 判断一个整数是否为素数 输出一个整数的所有约数 (不需要返回,直接输出) 求两个整数的最大公约数。函数原型分别为: int IsPrime( int n); void Allfactors( int n); int BigCommonDivisor( int m, int n);
时间: 2024-03-10 18:50:21 浏览: 85
下面是用C语言编写的这三个功能的函数的代码:
```c
#include <stdio.h>
// 判断一个整数是否为素数
int IsPrime(int n) {
if (n <= 1) { // 小于等于1的数都不是素数
return 0;
}
for (int i = 2; i * i <= n; i++) { // 从2开始枚举到sqrt(n)
if (n % i == 0) { // 如果n能被i整除,说明n不是素数
return 0;
}
}
return 1; // 否则n是素数
}
// 输出一个整数的所有约数
void Allfactors(int n) {
for (int i = 1; i <= n; i++) { // 从1枚举到n
if (n % i == 0) { // 如果n能被i整除,说明i是n的约数
printf("%d ", i); // 输出i
}
}
printf("\n"); // 换行
}
// 求两个整数的最大公约数
int BigCommonDivisor(int m, int n) {
if (m < n) { // 保证m >= n
int temp = m;
m = n;
n = temp;
}
while (n != 0) { // 辗转相除法
int r = m % n;
m = n;
n = r;
}
return m; // 最后m就是最大公约数
}
int main() {
int n = 17;
if (IsPrime(n)) {
printf("%d is a prime number.\n", n);
} else {
printf("%d is not a prime number.\n", n);
}
int m = 24;
printf("%d's factors are: ", m);
Allfactors(m);
int a = 12, b = 18;
printf("The big common divisor of %d and %d is %d.\n", a, b, BigCommonDivisor(a, b));
return 0;
}
```
输出结果为:
```
17 is a prime number.
24's factors are: 1 2 3 4 6 8 12 24
The big common divisor of 12 and 18 is 6.
```
阅读全文