#include <stdio.h>

int main(void)
{
	int i = 0, j = 0;
	int group = 0, left = 0, right = 0;		// 그룹의 수가 층의 수가 된다.
	int width = 0, min_width = 0, add_width = 0, num_of_add_width = 0;

	fputs("몇 줄에 출력할지 숫자 입력 : ", stdout);
	scanf("%d", &group);
	putc('\n', stdout);

	left = 2;
	min_width = 8 / group;
	num_of_add_width = 8 % group;

	for (i = 0; i < group * 9; i++)
	{
		add_width = (num_of_add_width * 9 > i ? 1 : 0);
		width = min_width + add_width;
		right = i % 9 + 1;
		
		if (i != 0 && i % 9 == 0)
			putc('\n', stdout);

		for (j = 0; j < width; j++)
		{
			printf("%d*%d=%3d  ", left, right, left*right);
			left++;
		}

		if (i % 9 != 8)
			left -= width;
		putc('\n', stdout);

	}

	return 0;
}