Guest User

Untitled

a guest
Jun 23rd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. unsigned **sudaram_array(unsigned max)
  6. {
  7. unsigned n, k;
  8. unsigned i, j, m;
  9. unsigned **array;
  10.  
  11. if(!(max % 2))
  12. max -= 1;
  13. n = (sqrt(max) - 1) / 2;
  14.  
  15. if(!(array = malloc((n + 1) * sizeof(int *)))
  16. return NULL;
  17.  
  18. for( i = 1; i <= n; i++)
  19. {
  20. k = (max - (pow(((2 * i) + 1), 2))) / ((4 * i) + 2)
  21.  
  22. for(j = 1; j <= k; j++)
  23. {
  24. if(!(array[i] = malloc ((k + 1) * sizeof(int))))
  25. {
  26. for( m = 0; m <= i; m++)
  27. {
  28. free(array[m]);
  29. free(array);
  30. return NULL;
  31. }
  32. }
  33. else
  34. {
  35. array[i][j] = pow((2 * i) + 1, 2) + j * (4 * n) + 2);
  36. }
  37. }
  38. }
  39. return array;
  40. }
  41.  
  42. int main()
  43. {
  44. unsigned **tab;
  45.  
  46. tab = sudaram_array(10000);
  47. printf("%d", tab[1][1]);
  48. return 0;
  49. }
Add Comment
Please, Sign In to add comment