介绍
我在休闲数学中一直在玩的事情是构造除数表,以便直观地比较/对比一组数字的本数。输入数字的集合在顶部作为列标签,在主除数的左边作为行标签,并且标记指示两者的排列位置。
例如,对于输入6, 9, 14, 22
,将构建类似于以下内容的表:
6 9 14 22
2 * * *
3 * *
7 *
11 *
这是因为6
具有和的素数,具有2
和的素数,依此类推。3
9
3
施工
- 该表的构造使得输入数字形成以空格隔开并按升序排列的列标签(您可以假定它们是预先排序的),并且素数除数以升序列在左侧,每行一行标签。
- 请注意,如果数字的长度不同,则质数和输入数字的前导空格可能是必需的,因此所有列的宽度均应相同,并适当对齐。
- 每个除数都由一个
*
(或您选择的其他合适的ASCII字符表示,只要所有出现都使用相同的字符)即可。 - 多个除数将被忽略(例如,
3 x 3 = 9
但是*
那个交集只有一个)。 - 本
*
可以在栏中任一水平放置,只要它是明确的(我有我所有的用例*
右对齐)。
输入值
- 正整数的名单在任何方便的格式,每个
>1
。 - 您可以假定输入已预先排序。
- 确保输入仅具有唯一值。
输出量
主除数表的结果ASCII艺术表现形式。
规则
- 前导或尾随的换行符或空格都是可选的,只要字符本身正确对齐即可。
- 如果用分隔线将表格标题/行标题与表格数据分隔开来要短一些,那也是允许的。
- 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。
- 如果可能,请提供一个在线测试环境的链接,以便人们可以尝试您的代码!
- 禁止出现标准漏洞。
- 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。
例子
6,9,14,22
6 9 14 22
2 * * *
3 * *
7 *
11 *
2,3,5,7
2 3 5 7
2 *
3 *
5 *
7 *
2,4,8,16,32
2 4 8 16 32
2 * * * * *
75,99,151,153
75 99 151 153
3 * * *
5 *
11 *
17 *
151 *