c语言录入一个数,输出所有约数
时间: 2023-07-13 12:06:07 浏览: 76
下面是一个实现该功能的 C 语言程序:
```c
#include <stdio.h>
int main() {
int num, i;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("%d的约数有:", num);
for (i = 1; i <= num; i++) {
if (num % i == 0) {
printf("%d ", i);
}
}
return 0;
}
```
程序先让用户输入一个正整数 `num`,然后通过循环从 1 到 `num` 遍历每一个数,如果该数能整除 `num`,那么就输出该数,即为 `num` 的一个约数。最终输出所有约数。
相关问题
c语言输出一个数的所有
因数
以下是一个输出一个数的所有因数的C语言程序:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的因数有:", n);
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
printf("%d ", i);
}
}
return 0;
}
```
程序中,首先读入一个正整数n,然后从1到n遍历每一个数,如果n能被当前遍历的数整除,就输出它,最后输出所有因数的结果。
c语言求三个数最大公约数
在C语言中,可以使用欧几里得算法(辗转相除法)来求解三个数的最大公约数。欧几里得算法的基本思想是通过不断用较小数去除较大数,然后用除数去除余数,直到余数为0为止,此时除数即为最大公约数。
以下是使用C语言实现求三个数最大公约数的代码示例:
```c
#include <stdio.h>
// 求两个数的最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求三个数的最大公约数
int gcdOfThree(int a, int b, int c) {
return gcd(gcd(a, b), c);
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
int result = gcdOfThree(a, b, c);
printf("三个数的最大公约数为:%d\n", result);
return 0;
}
```
请注意,以上代码中使用了递归来实现求两个数的最大公约数,并在此基础上求解三个数的最大公约数。在主函数中,首先通过`scanf`函数获取用户输入的三个整数,然后调用`gcdOfThree`函数求解最大公约数,并将结果打印输出。