ejercicio C en clase Sección 70)

By eligioc

// 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;
}

Escribe un comentario