#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
int n; scanf("%d", &n);
// 동적할당
int** arr = (int**)malloc(sizeof(int*) * n);
memset(arr, 0, sizeof(int*) * n);
if (arr == NULL)
return;
for (int y = 0; y < n; y++)
{
arr[y] = (int*)malloc(sizeof(int) * n);
memset(arr[y], 0, sizeof(int) * n);
}
for (int y = 0; y < n; y++)
{
for (int x = 0; x < n; x++)
arr[y][x] += 1 + y + x;
}
for (int y = 0; y < n; y++)
{
for (int x = 0; x < n; x++)
printf("%d ", arr[y][x]);
printf("\n");
}
// 2차원 배열 해제
if (arr != NULL)
{
if (*arr != NULL)
{
for (int i = 0; i < n; i++)
free(arr[i]);
}
free(arr);
}
printf("소멸");
}