在我一直挑战的所有年份中,2017年是第一年。因此,问题将是关于质数及其性质。
您的任务是生成一个将任意大的正整数作为输入的程序或函数,并输出或返回该数字是否为2017易碎的数字,即该数字中最大的质数是否为2017或更小。
一些示例输入及其输出:
1 (has no prime factors)
true
2 (= 2)
true
80 (= 2 x 2 x 2 x 2 x 5)
true
2017 (= 2017)
true
2019 (= 3 x 673)
true
2027 (= 2027)
false
11111 (= 41 x 271)
true
45183 (= 3 x 15061)
false
102349 (= 13 x 7873)
false
999999 (= 3 x 3 x 3 x 7 x 11 x 13 x 37)
true
1234567 (= 127 x 9721)
false
4068289 (= 2017 x 2017)
true
您的程序不必逐字输出,true
并且false
-任何真实值或虚假值,实际上在真假情况下一致的任何两个不同输出都可以。
但是,您不得在源代码中使用任何素数。素数有两种类型:
表示素数文字的字符或字符序列。
字符
2
,3
,5
,和7
是在数字是有效的标记语言是非法的。该数字
141
是非法的,因为它包含41
,即使1
和4
都是有效的。字符
B
和D
(或b
和d
)在通常用作11和13的语言中是非法的,例如CJam或Befunge。
具有素数值Unicode值或在其编码中包含素数值字节的字符。
这些字符
%)+/5;=CGIOSYaegkmq
以及ASCII回车符都是非法的。该字符
ó
在UTF-8中是非法的,因为其中包含其编码0xb3
。但是,在ISO-8859-1中,它的编码很简单0xf3
,是复合的,因此可以。
以任何语言完成上述操作的最短代码均胜出。
=
大多数标准语言的规则...