/* 
 * nothing smart here, just tries each number from 2 ... sqrt(n)
 * use: gcc -O2 -m486 -ffast-math -o factor factor.c
 * brg Fri Sep 11 23:13:04 PDT 1998
 */
#include <stdio.h>
#include <math.h>

int main(int argc, char **argv)
{
	unsigned long n;
	if (argc!=2) { fprintf(stderr,"usage: %s ulong\n", argv[0]); exit(1); } 
	n = strtoul(argv[1],NULL,10);
	factor(n);
	exit(0);
}

int factor(unsigned long n)
{
	unsigned long f;
	for (f = 2; f <= sqrt(n); f++) {
		if (n % f == 0) {
			printf(" %d", f);
			return factor(n / f);
		}
	}
	printf(" %d\n", n);
	return 0;
}

