取一个正整数k,找到它的除数。找出每个除数的不同的素因子。把所有这些因素加在一起。如果这个数(和)是k的除数(如果和除以k),那么这个数k就是BIU数。
让我们取数字54
找到所有的除数:[1, 2, 3, 6, 9, 18, 27, 54]
找出每个因子的不同素因子
注意:对于1的情况,我们采用不同的素数1
1 -> 1
2 -> 2
3 -> 3
6 -> 2,3
9 -> 3
18 -> 2,3
27 -> 3
54 -> 2,3 现在我们取所有这些素因子之和。
1+2+3+2+3+3+2+3+3+2+3=27
27除以54 (不剩馀数)
所以,54是一个BIU数。
k=55的另一个(快速)示例
除数:[1,5,11,55]
不同素因子之和:1+5+11+5+11=33
33不是55的除数,这就是为什么55不是BIU数的原因。
下面是其中的前20个:
1,21,54,290,735,1428,1485,1652,2262,2376,2580,2838,2862,3003,3875,4221,4745,5525,6750,7050.
但是这个列表还在继续,有很多的BIU数字都在等待着被你删除!
挑战
给定整数n>0作为输入,输出nth BIU数。
输入->输出
1->1
2->21
42->23595
100->118300
200->415777
300->800175 这是以字节为单位的古德道夫.Shortest应答胜利!
发布于 2017-09-27 01:38:26
发布于 2017-09-27 00:49:12
If[#<2,1,n=#0[#-1];While[Count[(d=Divisors)@++n,1+Tr@Cases[d/@d@n,_?PrimeQ,2]]<1];n]&https://codegolf.stackexchange.com/questions/143826
复制相似问题