/****************************************************************************/
/* Suma de una progresion geometrica, incluyendo la posibilidad de          */
/* sumar toda la serie.                                                     */
/*                                                                          */
/* Jaime Suarez <mcripto@bigfoot.com> 2003                                  */
/* en http://elparaiso.mat.uned.es                                            */
/****************************************************************************/

#include <math.h>

#include <stdio.h>

main()
{
	float a,r,suma;
	unsigned int n;
	
	printf("Suma de progresiones geometricas.\n");
	printf("=================================\n");
	
	printf("Primer termino de la progresion : "); scanf("%f",&a);
	printf("Razon de la progresion          : "); scanf("%f",&r);
	printf("Numero de terminos que se suman\n");
	printf("ó 0 para sumar toda la serie    : "); scanf("%d",&n);

	if (n!=0) suma=a*(pow(r,n+1)-1)/(r-1);
	else if (r<1 && r>-1) suma=a/(1-r);
	else { printf("La suma diverge.\n"); return 0;}
	printf("\nLa suma de los terminos es: %f\n",suma);
	return 0;
}