Prime Factorization
void PrimeFact( int n, int *factors, int *factCount, int &len){
int i,count, sqrtN;
sqrtN = (int) sqrt( (double) n ) + 1;
for(i = 0; prime[i] < sqrtN ; i++)if(!(n%prime[i])){
factors[len] = prime[i]; count = 0;
while(!(n%prime[i]))n/=prime[i], count++;
factCount[len++] = count;
sqrtN = (int) sqrt( (double) n ) + 1;
}
if(n>1)factors[len] = n, factCount[len++] = 1;
}