void partitionPrime(int value) { int arr[MAXLENGTH] = {0}; //Make array values all 0 printf("partitionPrime %d\n", value); partPrime(value, arr, 0); //Intial starting index is 0 }
void partitionPrime(int value) { int ind = 0; printf("partitionPrime %d\n", value); void partPrime( int value, int * arr, int ind); int * arr = malloc(value * sizeof(int)); partPrime(value, arr, ind); free(arr); }
void partPrime(int value, int * arr, int ind) { int i; if(value == 0) { printArray(arr, ind); return; } for(i = 2; i <= value; i++) { if(isPrime(i)) //Only recall the function and place values if i is prime { arr[ind] = i; partPrime(value - i, arr, ind + 1); } } }
void partPrime(int value, int* arr, int ind) { int n = 0; int primenum = 0; int prime(int n); if (value == 0) { printpart(arr, ind); return; } for (n = 1; n <= value; n++) { primenum = prime(n); if (primenum == 1) { arr[ind] = n; partPrime(value - n, arr, ind + 1); } } }