Metropoli BBS
VIEWER: ifactorp.c MODE: TEXT (ASCII)
/* Copyright (C) 1994 by Thomas Glen Smith.  All Rights Reserved. */
/* ifactorp APL2 V1.0.0 ************************************************
* For positive integers, ifactorl(n) is defined as the product of all  *
* positive integers up to n.  Factorl(0) and factorl(1) both return 1. *
* If argument n is a negative integer, aplerr will be set.             *
***********************************************************************/
#define INCLUDES 0
#include "includes.h"
void ifactorp(n,ret)
int *n,*ret;
{
	extern int aplerr;
	int i,j,k;

	j = *n;
	if (j == 0 || j == 1) { *ret = 1; return; }
	if (j < 0.0) {
		aplerr = 36; /* bad argument to factorial */
		*ret = 0;
          return;
		}
     i = j;
	while (--i) j *= i;
	*ret = j;
}
[ RETURN TO DIRECTORY ]