C语言 2:求一个数的因子的总和

输入:45 

#include"stdio.h"
#include"math.h"
int main()
{
    int a,i,s=0,cnt=0;
    printf("输入任意一个正数\n");
    scanf("%d",&a);
    for(i=1;i<=a;i++)
    {
        if(a%i==0)
        {
            printf("%d\n",i);
            cnt++;
            s+=i;
        }
    }
    printf("%d\n",s);
    return 0;
}

 输出:

1

3

5

9

15

45

78

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
请参考下面的C语言程序: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 2到n之间的所有完全 void PerfectNumbers(int n) { for (int i = 2; i <= n; i++) { int sum = 1; for (int j = 2; j * j <= i; j++) { if (i % j == 0) { sum += j; if (j * j != i) sum += i / j; } } if (sum == i) printf("%d ", i); } printf("\n"); } // 组的累加和 double Sum(double a[], int num) { double sum = 0.0; for (int i = 0; i < num; i++) { sum += a[i]; } return sum; } // 字符串1在字符串2中出现的位置 char* StrPos(char* str2, char* str1) { char* pos = strstr(str2, str1); return pos; } int main() { // 测试完全 printf("The perfect numbers between 2 and 1000 are:\n"); PerfectNumbers(1000); // 测试组累加和函 double array[] = { 1.0, 2.0, 3.0, 4.0, 5.0 }; int num = sizeof(array) / sizeof(double); double sum = Sum(array, num); printf("\nThe sum of the array is: %f\n", sum); // 测试字符串位置函 char str1[] = "good"; char str2[] = "This is a good day."; char* pos = StrPos(str2, str1); printf("\nThe substring \"%s\" is found at position %ld of \"%s\".\n", str1, pos - str2, str2); return 0; } ``` 该程序分别实现了2到n之间的所有完全组的累加和和字符串1在字符串2中出现的位置的功能。其中,完全的函使用了两层循环,分别计算每个因子和,如果等于该本身,则说明该是完全组的累加和的函使用了一个for循环,依次累加组中的元素,并返回总和字符串1在字符串2中出现的位置的函使用了C语言标准库中的strstr函,该函会在str2中查找str1的第一次出现,并返回该位置的指针。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值