void partitionPrime(int value) { printf("partitionPrime %d\n", value); int * buffer = malloc( value * sizeof(int)); partition_prime(buffer, 0, value); free(buffer); }
void partitionPrime(int value) { int * arr; printf("partitionPrime %d\n", value); arr = malloc(sizeof(int) * value); partition_prime(arr, 0, value); free (arr); }
void partition_prime(int * arr, int pos, int n) { if(n == 0) { print_arr(arr, pos); return; } int i; for(i = 1; i<= n; i++) { if(i == 1 || (i > 2 && i % 2 == 0) || (i > 3 && i % 3 == 0) || (i > 5 && i % 5 == 0)|| (i > 7 && i % 7 == 0)) { continue; } arr[pos] = i; partition_prime(arr, pos+1, n-i); } }
void partition_prime(int * arr, int index, int n) { int test; int track = 0; if (n == 0) { printf("= "); printpartition(arr, index); return; } else { for (test = 1; test <= n; test++) { track = check_prime(test); if ((track <= 2) && (test != 1)) { arr[index] = test; partition_prime(arr, index + 1, n - test); } } } }