Uhm... Potresti farlo con un ciclo...
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ( )
{
	srand ( (unsigned) time ( NULL ) );
	int numero = rand ( ) % 10000;
	int n_attuale = numero;
	int i;
	
	for ( i = 2; n_attuale > 1; ) {
		if ( ! ( n_attuale % i ) ) {
			printf ( "%d (%d) e' divisibile per %d (resta %d).\n",
				 numero, n_attuale, i, n_attuale/i );
			n_attuale /= i;
			continue;
		}
		i ++;
	}
	
	return 0;
}