So I'm suffering a problem in my code. When primefactorization is initialised to calculate the product of prime factors of the number (in ascending order), the first couple of values are what I need. However, the program then starts doing stuff that I don't want it to. For instance, if I write 49 as my number, instead of 49=(7)(7), I get 49=(7)(7)(49). Same with any other non prime like 100. Where is my error?Code:#include<stdio.h> int main (void) { int number, checkFactor; printf ("Please enter a number between 2 and 1000000.\n\n"); scanf ("%d", &number); if (number < 2 || number > 1000000) { printf ("\nThis number is not in the domain.\n\n"); return 0; } checkFactor = primenesscheck (number); if (checkFactor == 1) { printf ("%d=", number); primefactorization (number); } return 0; } int primenesscheck(int number) { int i, checkPrime, notprime; for (i=2; i<number; i++) { if (number % i == 0) { number = notprime; break; } } if (number == notprime) { printf ("\nThis number is not prime.\n\n"); checkPrime = 1; } else { printf ("\nThis number is prime.\n\n"); checkPrime = 2; } return checkPrime; } void primefactorization (int number) { int currentfactor,checkingfactor,newnumber; for (currentfactor=2;currentfactor<=number;currentfactor++) { checkingfactor = number % currentfactor; if (checkingfactor == 0) { printf ("(%d)", currentfactor); newnumber = number/currentfactor; if (newnumber == 1) { break; } primefactorization(newnumber); } } return 0; }