数组元素的除数之和

时间:2014-08-23 15:50:31

标签: c

今天我被问到一个公司的C问题,我必须单独找到一个数组的所有除数的总和,除了它自己并将每个和存储在同一个数组中。例如,如果数组由{10,4组成然后,对于10,它应该存储1 + 2 + 5 = 8代替10,然后对于4,1 + 2 = 3等等。我只给了4个变量(): - array [],我,temp,n(大小)。我可以使用两个循环但它需要一个变量。任何人都可以建议我解决方案吗?

1 个答案:

答案 0 :(得分:3)

由于您说您将数组大小作为变量 n,因此可以将其用作循环计数器:

while (n > 0) {
    --n;
    temp = 0; // the sum
    for (i = a[n] - 1; i > 0; --i) {
        if (a[n] % i == 0) {
            temp += i;
        }
    }
    a[n] = temp;
}