Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- unsigned **sudaram_array(unsigned max)
- {
- unsigned n, k;
- unsigned i, j, m;
- unsigned **array;
- if(!(max % 2))
- max -= 1;
- n = (sqrt(max) - 1) / 2;
- if(!(array = malloc((n + 1) * sizeof(int *)))
- return NULL;
- for( i = 1; i <= n; i++)
- {
- k = (max - (pow(((2 * i) + 1), 2))) / ((4 * i) + 2)
- for(j = 1; j <= k; j++)
- {
- if(!(array[i] = malloc ((k + 1) * sizeof(int))))
- {
- for( m = 0; m <= i; m++)
- {
- free(array[m]);
- free(array);
- return NULL;
- }
- }
- else
- {
- array[i][j] = pow((2 * i) + 1, 2) + j * (4 * n) + 2);
- }
- }
- }
- return array;
- }
- int main()
- {
- unsigned **tab;
- tab = sudaram_array(10000);
- printf("%d", tab[1][1]);
- return 0;
- }
Add Comment
Please, Sign In to add comment