介绍
在数论中,我们说一个数为光滑的数,当它的主要因子最多为。例如,2940是7-平滑因为。
在这里,我们将平滑对定义为两个都是平滑的连续整数。7光滑对一个例子将是,因为和。有趣的事实:这实际上是最大的7平滑对。
斯托默(Størmer)在1897年证明,对于每,只有有限的平滑对,并且这一事实被称为斯托默定理。
挑战
您的任务是编写一个程序或函数,给定素数输入,以您想要的任何顺序输出或返回所有平滑对,而没有重复(对内的顺序无关紧要)。
请注意,对于质数和,假设,则所有平滑对也是平滑对。
样品I / O
Input: 2
Output: (1, 2)
Input: 3
Output: (1, 2), (2, 3), (3, 4), (8, 9)
Input: 5
Output: (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (8, 9), (9, 10), (15, 16), (24, 25), (80, 81)
Input: 7
Output: (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10), (14, 15),
(15, 16), (20, 21), (24, 25), (27, 28), (35, 36), (48, 49), (49, 50), (63, 64),
(80, 81), (125, 126), (224, 225), (2400, 2401), (4374, 4375)
限制
理论上,对于所有输入,程序或功能都应在有限的时间内终止。默认情况下,不允许出现标准漏洞。
获奖标准
由于这是代码高尔夫球挑战,因此每种语言的最短有效提交将获胜。
(1, 2)
部分输出?
(1, 2)
对。