/* A program to compute the sum a0^n + a1^n + ... + ak^n*/

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(int argc, char* argv[])
{
  double n, sum;
  double *a;
  int numArgs;   /* number of arguments that are numbers to be summed */
  int i;
  
  if (argc < 4)
  {
    printf("ERROR -- too few command line arguments\n");
    printf("Format: \n a.out a[1]...a[n] n \n where: \n");
    printf(" The progam prints the sum of a[i]^n for ");
    printf(" all given numbers\n");
    printf("There must be at least two values of a\n");
  
    return(1);
  }

  numArgs = argc-2;
  a = new double[numArgs];

  for(i=1; i <= numArgs; i++)
  {
    a[i-1] = atof(argv[i]);
    printf("a[%d] = %lf\n", i-1, a[i-1]);
  }
  
  /*
  for(i=0; i < numArgs; i++)
  {
    a[i] = atof(argv[i+1]);
  }
  */
  
  n = atof(argv[argc-1]);
  printf("n = %lf\n", n);  

  sum = 0.0;  
  for (i = 0; i < numArgs; i++)
  {
    sum = sum + pow(a[i], n);
  }
  
  printf("The sum of the series is %lf\n", sum);
  return(0);
}

