luogu#B3888. [语言月赛 202311] 画图练习

[语言月赛 202311] 画图练习

题目描述

为了培养学生的兴趣,洛谷小学的信息课上会教学生使用绘板软件,让学生在电脑上自由创作图画。

小 A 非常喜欢字符画。他打算在课上创作一幅自己的字符画。他的字符画一共有 nn 行,绘画规则如下:

  • ii 行的非空格的字符有 i2i^2 个;
  • ii 行以大写的第 ii 个英语字母开头。每一列用其前一非空格列的字母的下一个填充。特别地,Z 的下一个字母是 A。
  • 如果当前列数加上当前本应填充的字母的 ASCII 码不为质数,则跳过该列(用空格填充),直到列数加上本应填充的字母的 ASCII 码为质数为止。

请绘画出小 A 的字符画。

输入格式

输入一个正整数 nn,表示这是一个 nn 行的字符画。

输出格式

输出 nn 行字符,表示这是小 A 创作的字符画。

3
 A
B  CD    E
   CD    E  F    G      H  IJ  K
6
 A
B  CD    E
   CD    E  F    G      H  IJ  K
  DE    F  G    H      I  JK  LM  N            O  P    QR        S
 EF    G  H    I      J  KL  MN  O            P  Q    RS        TU    V    W  X    Y    Z  A    B  C
FG    H  I    J      K  LM  NO  P            Q  R    ST        UV    W    X  Y    ZAB    C    D  E    F    GH        IJ  KL          M          N  O

提示

【样例解释】

对于样例 11

  • 第一行应当以第一个大写字母,即 A 开头。但是 A 的 ASCII 码是 6565,加上列数 11,为 6666,其并不是质数(66=2×3×1166=2\times 3\times 11),因此第一列为空。而第二列,65+2=6765+2=67,为质数,因此在第二列输出 A。此时已经输出了 121^2 个字母,故换行。

  • 第二行应当以第二个大写字母,即 B 开头。B 的 ASCII 码是 6666,加上列数 11,为 6767,为质数。因此第一列就输出 B。随后应当输出下一个英语字母 C。C 的 ASCII 码为 6767,加上列数 22,为 69=3×2369=3\times 23,不为质数,用空格跳过。而直到第四列,67+4=7167+4=71 为质数,因此在第四列输出 C。同理,在第五列输出 D,在第 1010 列输出 E。

对于样例 22

  • 该样例的第五第六行体现了 Z 的下一个字母是 A。

【数据范围】

对于所有数据,1n261\leq n\leq 26