可以帮我注释一下让我理解吗

img

帮你注解了

#include <stdio.h>

int main()
{
    int m, s, i;
    for (m = 2; m < 1000; m++) // 对1000以内的每个数(除1外,因为1不是完数)
    {
        s = 0;    // s用来累计当前m的因子之和
        for (i = 1; i < m; i++) // 对区间[1,m)内的每个数i
            if ((m % i) == 0)   // 如果m能被i整除,则i是m的一个因子
                s = s + i;      // 累加该因子
        if (s == m)  // 如果所有因子之和s等于当前数m,则m是完数
        {
            printf("%d, its factors are ", m); // 输出m
            for (int i = 1; i < m; i++)        // 打印m的所有因子
                if (m % i == 0)
                    printf("%d ", i);
            printf("\n");
        }
    }
}
#include<stdio.h>   %标准输入输出头文件

int main()  % 声明主函数
{
        int m, s, i;  % 定义三个整型变量
        for (m=2; m<100; m++) % 做一个从2到100的循环,注意这里实际是99,因为m=100的时候,不满足条件会跳出循环
        {
                s = 0; % 给s赋值,0
                for (i=1; i<m; i++)  % 做一个从1到m-1的循环
                        if ((m%i)==0) s=s+1; % 判断m是否会被i整除,如果整除,则将s+1(个人认为这里应该是加i)
                if (s==m) % 判断s与m是否相等,如果相等执行下面的命令
                {
                        printf("%d, its factors are ", m);  % 输出完数
                        for (i=1; i<m; i++) % 做一个从1到m-1的循环
                                if (m%i==0) printf("%d ", i); % 输出所有能被m整除的整数
                        printf("\n"); %输出换行
                }
        }
}

如果有帮助,请采纳,多谢!