编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

30
多少个素数?
表示自然数的一种方法是乘以质数的指数。例如,6可以由2 ^ 1 * 3 ^ 1表示,而50可以由2 ^ 1 * 5 ^ 2表示(其中^表示指数)。与其他方法相比,此表示形式中的质数可以帮助确定使用这种表示方法是否更短。但是因为我不想手工计算这些,所以我需要一个程序为我做这些。但是,由于在回家之前我必须记住该程序,因此它必须尽可能短。 你的任务: 编写程序或函数以确定该数字表示形式中有多少个不同的质数。 输入: 通过任何常规方法获取的整数n,使得1 <n <10 ^ 12。 输出: 引言中概述了表示输入所需的不同素数的数量。 测试用例: 24 -> 2 (2^3*3^1) 126 -> 3 (2^1*3^2*7^1) 1538493 -> 4 (3^1*11^1*23^1*2027^1) 123456 -> 3 (2^6*3^1*643^1) 这是OEIS A001221。 得分: 这是代码高尔夫球,最低得分(以字节为单位)获胜!

2
就像路径段;第一次感动
给定2个或更多2D笛卡尔点的有序列表,如果路径接触自身或自相交,则输出真实值;否则,如果它不接触自身或不自相交,则输出虚假值。 您可以假定列表中的连续点是不同的。 例子: (0,0), (1,0) -> falsey (0,0), (1,0), (0,0) -> truthy (0,0), (1,0), (1,1), (0,0) -> truthy (0,0), (2,0), (1,1), (1,-1) -> truthy (0,0), (10,0), (0,1), (10,1), (0,2), (10,2) -> falsey 请注意,我在此处给出的所有坐标都是整数。您可以支持{整数,小数,有理数,浮点数,...}之外的任意坐标输入。但是您的实现计算必须为给定的任何输入给出正确的答案。

25
跳数
任务 打印整数n,其中 12 <= n <= 123456789和中的所有连续数字对在它们之间具有相同的正差(例如2468,但不是2469)。 没有输入。 输出: 12 13 14 15 16 17 18 19 23 24 25 26 27 28 29 34 35 36 37 38 39 45 46 47 48 49 56 57 58 59 67 68 69 78 79 89 123 135 147 159 234 …

19
欧洲原语序列
给定一个正整数n,输出欧元原序列的第n个数字。 计算序列 该序列等于OEIS A242491。 如果可以通过使用尽可能多的不同的欧元硬币或纸币来组成数字,则数字是该序列的一部分,但每个只能使用一个。请注意,您不必考虑美分。 例: 6 将按顺序排列,因为它可以包含1欧元硬币和5欧元纸币。 4 不会按顺序排列,因为不能根据给定的要求形成。 为了给大家一个概览,以下是您必须考虑的带有欧元值的列表: 1欧元,2欧元,5欧元,10欧元,20欧元,50欧元,100欧元,200欧元,500欧元 请注意,此序列仅在0(是,包括0!)到888的范围内。 以下是此序列的前15个元素: 0、1、2、3、5、6、7、8、10、11、12、13、15、16、17 ... 测试用例 输入 -> 输出 2 -> 1 6 -> 6 21 -> 25 33 -> 50

18
素因数根
受数字根的启发,数字的素因数根是当您将一个数字的素因数加在一起,然后对所得数字重复该过程时出现的数字,直到您得到一个质数(它本身就是唯一的主要因素,因此是其自己的主要因素根。4的素数因数根为4,为2 * 2 = 2 + 2,这是唯一的大于1的整数的非素数因数根(这是另一种特殊情况,因为它没有素数)。由素因数根形成的OEIS序列为A029908。 例如,24的素因数根为: 24=2*2*2*3 2+2+2+3=9=3*3 3+3=6=2*3 2+3=5, and the only prime factor of 5 is 5. Therefore, the prime factoral root of 24 is 5. 你的任务: 编写一个程序或函数,以查找输入整数的素因数根。 输入: 通过任何合理的方法输入的整数,介于2和您的语言将支持的最大整数(包括)之间。不允许专门选择最大整数大小过低的语言(并且还会违反此标准漏洞) 输出: 整数,输入的素因数根。 测试用例: 4 -> 4 24 -> 5 11 -> 11 250 -> 17 得分: …

2
全方位展开
输入: 一串 输出: 1)首先,我们采取在输入串的末尾删除字符,直到我们留下的长度为正方形(即1,4,9,16,25,36,等等) 因此,abcdefghijklmnopqrstuvwxyz(长度26)变为abcdefghijklmnopqrstuvwxy(长度25)。 2)然后我们将其放在一个正方形中,从左到右一次一行: abcde fghij klmno pqrst uvwxy 3)我们在四个方向上都将其折叠,如下所示(我们不断展开,直到外部折叠的“块”不再具有内部字符可展开): m qrs l n ghi abcde ihgf jihg mn lk on lm srqp tsrq uvwxy qrs l n ghi m 需要注意的一些事情,当我们向外折叠时,我们基本上像这样镜像(为澄清起见添加了数字,这些数字表示这些示例中的“索引”): 当我们向外折叠时: 123 to: 321 123 fghij ihgf j 当我们折叠右侧时: 123 to: 123 321 fghij f jihg 当我们向上折叠时: …

15
井字游戏-X或O?
背景 如果您熟悉井字游戏,请跳到“任务”(我想大多数人是!) 井字游戏是一款著名的两人游戏。它由一个3x3的棋盘组成,由两个玩家逐渐填充(以下说明);第一个玩家使用角色X,另一个使用O。获胜者是第一个获得水平,垂直或对角线连续3个相同字符(X或O)的人。如果棋盘已满,并且没有一个玩家设法获得上述连续的三个角色,则游戏以平局结束。请注意,如果任一位玩家的胜利总数少于9步(如果出现平局,则不会发生),游戏结束时可能会有空位。 任务 给定游戏结束时的井字游戏板(以字符串,矩阵,9个有序值的平面列表以及任何其他体面格式的形式),确定谁赢了游戏。 输入将包含不同且一致的值,一个表示X,一个表示O,另一个表示空白。 您的程序应该能够输出3个不同的,一致的和非空的值:一个以防万一X,另一个以防万一O如果玩家并列,则为另一个。 请在答案中指定这些值。您可以假定输入将是有效的井字游戏板。 测试用例 X,O,_在这里的输入值; X wins,O wins并Tie用于输出。 X O X O X _ O _ X 输出:X wins。 X _ O X O _ X O X 输出:X wins。 X O X _ O X _ O _ 输出:O wins。 X O X O …

14
计算威尔逊数
给定正整数n,计算第n 个 威尔逊数 W(n),其中 和ë = 1,如果Ñ具有原根Ñ,否则ê = -1。换句话说,如果不存在1 < x < n-1和x 2 = 1 mod n的整数x,则n具有原始根。 这是代码高尔夫球,因此请为计算n的函数或程序创建最短的代码输入整数 n > 0的第个威尔逊数。 您可以使用基于1或基于0的索引。您也可以选择输出前n个威尔逊数。 这是OEIS序列A157249。 测试用例 n W(n) 1 2 2 1 3 1 4 1 5 5 6 1 7 103 8 13 9 249 10 19 11 329891 12 …

29
怪异的评分系统
Weirdo Incorporates有一种奇怪的方法,可以根据员工在办公室的工作天数来对其员工进行评分: 0 - 13 : F 14 - 170 : E 171 - 180 : D 181 - 294 : C 295 - 300 : B 301 - 365 : A Note: The range is inclusive (i.e. 0-13 means 0 days and 13 days both will evaluate as grade …

27
泛指倍增
灵感来自这个 CMC 给定一个大于0的正整数,对其执行以下操作: 如果所有十个数字(1234567890)都至少有一次,输出计数并退出程序 否则,将数字加倍并重复,增加计数。 计数从0开始,是输入加倍的次数。例如,如果输入为617283945,则需要将其加倍一次,因为1234567890中包含所有10位数字。 这是一个代码高尔夫球,因此最短的代码获胜。如果需要,可以将输入作为字符串。 测试用例 input => output 617283945 => 1 2 => 67 66833 => 44 1234567890 => 0 100 => 51 42 => 55

18
如何将省略号复数?
这显然是省略号。 受启发 聊天消息的。 你的挑战 给定一个列表,空格或逗号分隔的字符串,用省略号将其括起来。 省略一个单词: 从单词开始。 将原始单词的第一个字母添加到末尾。 在原始单词的最后一个字母的末尾加上2。 将原始单词的倒数第二个字母添加到末尾。 将原始单词的第一个字母添加到末尾。 将原始单词的最后一个字母添加到末尾。 重复步骤5和6。 你完成了! 您可以假设: 输入的单词只能是字母数字 输入和输出可以是用空格分隔的字符串或列表 输入将仅包含单词 单词长度至少为2个字母 输入将匹配正则表达式 /^[a-z0-9]{2,}( [a-z0-9]{2,})*$/i 您可以具有不同的输入和输出格式 还有更多... 测试用例: ellipsis -> ellipsisessieses goat -> goatgttagtgt covfefe -> covfefeceefcece programmer5000 -> programmer5000p000p0p0 up vote down goat -> upuppuupup voteveetveve downdnnwdndn goatgttagtgt it is golf yo …
14 code-golf  string 

28
拿起你的手机!它在振动!
您刚购买了一部新手机,但是您不太喜欢它的振动方式,因此您决定要创建自己的振动模式。因此,您编写了一个使用关键字的程序long,short并pause根据这些关键字使手机振动。 任务 创建一个小程序,它接受的字符串long,short和pause并输出表示一个电话振动的语音声音的另一个字符串;Rrrr - Rr long声音就是Rrrr short声音Rr (套管问题) pause是破折号- 所有声音都用破折号分隔,周围有空格' - ' 测试用例 输入: long long short long short 输出:Rrrr - Rrrr - Rr - Rrrr - Rr 输入: long long long short short short 输出:Rrrr - Rrrr - Rrrr - Rr - Rr - Rr 输入: short short short …
14 code-golf  string 

11
案例匹配查找替换
以三个输入,文本串T; 一串要替换的字符F;以及用替换它们的字符串R。对于每个T具有相同(不区分大小写)字符的子字符串F,请将其替换为中的字符R。但是,请保持与原始文本相同的大小写。 如果输入的字符R多于个F,则多余的字符应与输入的大小写相同R。如果其中包含数字或符号F,则其中的相应字符R应保持其大小写R。F不一定会出现在中T。 您可以假设所有文本都在可打印的ASCII范围内。 例子 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

8
查找最短的唯一子列表
给定一个列表列表,找到最短列表,它是一个列表的连续子列表。 例如,如果我们有 [[1,2,3], [1,2,3,4], [2,4,5,6], [1,2,4,5,6]] 最短的连续子列表将是[3,4]因为它仅出现在第二个列表中。 如果没有唯一的连续子列表(这需要至少一个重复的条目),则输出一个空列表。这是一个例子 [[1,2,3], [1,2,3], [1,2]] 如果有多个最小大小的连续子列表,则可以输出其中任何一个或包含所有子列表的列表。例如,如果输入是 [[1,2,3],[2],[1],[3]] 你可以输出两种[1,2],[2,3]或[[1,2],[2,3]]。如果选择执行后一种选项,则可能在只有一个解决方案的情况下输出单例列表。 只要在其他列表中没有出现,输出就可能在同一列表中出现多次。例如 [[1,2,1,2],[2,1]] 应该输出,[1,2]因为它[1,2]是第一个列表的子列表,但不是第二个列表的子列表,即使它是以两种不同的方式是第一个列表的子列表。 您可以将包含任何类型的列表的列表作为输入,只要该类型具有100个以上的可能值即可,即没有布尔值。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 [[1,1]] : [1] [[1],[1]] : [] [[1,1],[1]] : [1,1]

12
找出第n个亚伦编号
背景 甲露丝-亚伦一对是一对连续的正整数的n和n+1,使得所述质因数的总和(计数重复素因子)的每个整数相等。例如,(714,715)由于714=2*3*7*17是715=5*11*13,和,所以是Ruth-Aaron对2+3+7+17=5+11+13=29。卡尔·波默兰斯(Carl Pomerance)选择了露丝·亚伦(Ruth-Aaron)这个名字作为对贝贝·露丝(Babe Ruth)职业生涯本垒打的总和714,从1935年5月25日到1974年4月8日,这是世界纪录,当时汉克·亚伦(Hank Aaron)达到了715本垒打。您可以在此Numberphile视频中了解有关这些数字的迷人历史的更多信息。 目标 编写一个完整的程序或函数,给定一个正整数n,该函数将输出nth Aaron数,其中nth数定义为nth Ruth-Aaron对的较大整数。因此,n第Aaron数是a(n)+1,在OEIS序列A039752中a(n)的n第th项。 测试用例 前几个亚伦数字是 6,9,16,78,126,715,949,1331,1521,1863,2492,3249,4186,4192,5406,5561,5960,6868,8281,8464,10648,12352,14588,16933,17081,18491,20451,24896,26643,26650,28449,28810,33020,37829,37882,41262,42625,43216 规则 禁止出现标准漏洞。 输入和输出可以采用任何方便的格式。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.