( tttaaa | 2024. 11. 22., p – 07:39 )

#include <stdio.h>
#include <stdlib.h>

void draw(int num, int col, int row)
{
  int i, j, n;
  printf("    |");
  for (j = 0; j < col; ++j) printf("#%-3i|", j+1);
  printf("\n");
  for (i = 0; i < row; ++i)
  {
    printf("#%-3i|", i+1);
    for (j = 0, n = i; j < col; ++j, n += row)
      (n < num) ? printf("%4i|", n) : printf("   -|");
    printf("\n");
  }
}

void calc(int num, int inp_col, int *out_col, int *row)
{
  int m;
  *out_col = inp_col;
  m = num % inp_col;
  *row = num / inp_col;
  if (m == 0) return;
  (*row)++;
  if (inp_col - m < *row) return;
  *out_col = num / *row;
  if (num % *row > 0) (*out_col)++;
}

int main(int argc, char *argv[])
{
  int an,ac,r,c;
  an = atoi(argv[1]);
  ac = atoi(argv[2]);
  calc(an, ac, &c, &r);
  if (ac != c) printf("Nem oldhato meg %i oszlopban\n", ac);
  printf("Megoldhato %i oszlopban, %i sor\n", c, r);
  draw(an, c, r);
  return 0;
}