公式
以数字300为例
- 300的素数是
[2, 3, 5]
(作为300和素数的唯一数) - 对这些数字进行平方会给你
[4, 9, 25]
- 汇总清单将为您提供
4 + 9 + 25 = 38
- 最后从原始数字中减去该总和(38)
300-38 = 262
(这是结果)
输入项
您的输入将是一个大于2的正整数。您必须检查从2到输入值(包括该值)的所有数字,并使用上述公式找到产生最大结果的数字。
输出量
您的输出将是两个数字,中间用空格,逗号,换行符或任何您允许的语言分隔(必须分开才能区分这两个数字)。这些可以输出到文件,stdout或任何您使用的语言。您的目标是找到在通过上述公式运行时产生最大输出的范围内的数字。显示的第一个数字应该是起始数字(例如300),第二个数字应该是公式生成的输出(例如262)
测试用例
Input: 3 Output: 2, -2
Input: 10 Output: 8, 4
Input: 50 Output: 48, 35
Input: 1000 Output: 1000, 971
Input: 9999 Output: 9984, 9802
通过示例工作
考虑输入10,我们必须为2-10(含)之间的所有数字运行公式
Num PrimeFacs PrimeFacs^2 SumPrimeFacs^2 Result
2 [2] [4] 4 -2
3 [3] [9] 9 -6
4 [2] [4] 4 0
5 [5] [25] 25 -20
6 [2, 3] [4, 9] 13 -7
7 [7] [49] 49 -42
8 [2] [4] 4 4
9 [3] [9] 9 0
10 [2, 5] [4, 25] 29 -19
如您所见,最大的结果是4
,这是将值输入8
公式的结果。这意味着输入的输出10
应为8, 4
计分与规则
输入和输出的默认规则适用:Code Golf
的默认规则:输入/输出方法
禁止标准漏洞:默认情况下
禁止的漏洞
提交可以是函数或完整程序
以字节为单位的最短代码获胜
50
: 35, 48
?