整数分解求和c语言代码
时间: 2024-11-21 10:22:51 浏览: 5
c代码-13.计算并输出给定整数 n 的所有因子(不包括 1 与自身)之和。规定 n 的值不大于 1000。例如,从键盘给 n 输入的值为 856,则输出为sum=763。
5星 · 资源好评率100%
在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 prime_factors_sum(int num) {
int sum = 0;
while (num > 1) {
if (is_prime(num)) {
sum += num;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
num /= i;
if (is_prime(i))
sum += i;
else if (i != num)
continue; // 如果i不是num的最后一个因子,跳过下一个较小的因子
} else {
break;
}
}
}
printf("The sum of the prime factors of %d is %d.\n", num, sum);
}
int main() {
int number;
printf("Enter a positive integer: ");
scanf("%d", &number);
prime_factors_sum(number);
return 0;
}
```
在这个代码中,我们首先定义了一个辅助函数`is_prime`来检查一个数是否为质数。然后在`prime_factors_sum`函数中,我们逐步分解输入的数,并累计质因数的和。主函数则读取用户输入并调用这个函数。
阅读全文