// Calcula la suma de los factores
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
int leeCant(int a, int b) {
// lee entero en [a,b]
int n; // # a retornar
printf(“# entero entre %d y %d: “, a, b);
do
scanf(“%d”, &n);
while(n < a || n> b);
return n;
}
void leeVal(int n[], int c)
{
// lee los c naturales y colocaca en n[]
int p; //posición
for (p = 0; p < c; p++)
{
printf(“valor # %d: “, p+1);
scanf(“%d”, &n[p]);
}
}
int suma(int x) {
// suma de factores de x
int s = 1, k; // suma, contador
for (k = 2; k <= x/2; k++)
if (x % k == 0) s+=k;
return s;
}
void sumas(int s[], int n[], int c)
{
// Suma de los factores propios de c valores naturales en n[]
int p; // posición
for (p = 0; p < c; p++)
s[p] = suma(n[p]);
}
void despliega(int s[], int c)
{
// despliega los c valores en s[]
int p; // posición
for(p = 0; p < c; p++)
printf(“%d “, s[p]);
printf(“\n\n”);
}
int main(int argc, char *argv[])
{
int n; // # natural
int cant, num[MAX], sum[MAX];
printf(“Obtiene sumas de los factores propios.\n\n”);
cant = leeCant(1, MAX);
leeVal(num, cant);
sumas(sum, num, cant);
despliega(sum, cant);
system(“PAUSE”);
return 0;
}