c语言求一个数的所有因数之和
时间: 2023-06-07 19:11:02 浏览: 214
好的,对于一个正整数n,求其所有因数之和可以采用以下代码实现:
```c
#include <stdio.h>
int main()
{
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
int sum = 0;
for(int i = 1; i <= n; i++)
{
if(n % i == 0)
{
sum += i;
}
}
printf("%d的所有因数之和为:%d\n", n, sum);
return 0;
}
```
我们使用循环遍历1到n之间的所有数,找到n的因数并把它们相加。最后输出结果即可。
相关问题
用C语言写一个程序,求一个数的质因数之和
以下是用C语言编写的程序,可以求出一个数的质因数之和:
```c
#include <stdio.h>
int main() {
int n, i, j, sum = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
// 从2开始循环,如果i是n的因数,则i一定是质数
for (i = 2; i <= n; i++) {
if (n % i == 0) {
// 判断i是否是质数
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
break;
}
}
if (j > i / 2) {
sum += i;
}
n /= i;
i--;
}
}
printf("质因数之和为:%d\n", sum);
return 0;
}
```
程序的主要思路是从2开始循环到n,如果i是n的因数,则i一定是质数。然后再判断i是否是质数,如果是,则将i加入到质因数之和中。最后将n除以i,继续循环。
c语言 求两个数的最大公因数
可以使用辗转相除法(也叫欧几里得算法)求两个数的最大公因数。代码如下:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b;
printf("请输入两个数:\n");
scanf("%d%d", &a, &b);
printf("它们的最大公因数为:%d\n", gcd(a, b));
return 0;
}
```
这段代码通过递归调用求解两个数的最大公因数,直到其中一个数为0,返回另一个数作为最大公因数。