首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BIU数(或总结数)

BIU数(或总结数)
EN

Code Golf用户
提问于 2017-09-27 00:01:33
回答 5查看 661关注 0票数 12

如何识别他们

取一个正整数k,找到它的除数。找出每个除数的不同的素因子。把所有这些因素加在一起。如果这个数(和)是k的除数(如果和除以k),那么这个数k就是BIU数。

示例

让我们取数字54

找到所有的除数:[1, 2, 3, 6, 9, 18, 27, 54]

找出每个因子的不同素因子

注意:对于1的情况,我们采用不同的素数1

代码语言:javascript
复制
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数的原因。

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数。

测试用例

输入->输出

代码语言:javascript
复制
1->1  
2->21   
42->23595  
100->118300    
200->415777    
300->800175    

这是以字节为单位的古德道夫.Shortest应答胜利!

EN

回答 5

Code Golf用户

发布于 2017-09-27 07:43:45

05AB1E,9字节

代码语言:javascript
复制
µNNÑfOO>Ö

使用teh 05AB1E编码。在网上试试!

票数 5
EN

Code Golf用户

发布于 2017-09-27 01:38:26

外壳,13字节

代码语言:javascript
复制
!fṠ¦ö→ΣṁoupḊN

在网上试试!

Explantaion

代码语言:javascript
复制
  Ṡ¦ö→ΣṁoupḊ    Predicate: returns 1 if BIU, else 0.
           Ḋ    List of divisors
       ṁ        Map and then concatenate
        oup     unique prime factors
      Σ         Sum
    ö→          Add one
  Ṡ¦            Is the argument divisible by this result
 f          N   Filter the natural numbers by that predicate
!               Index
票数 4
EN

Code Golf用户

发布于 2017-09-27 00:49:12

Mathematica,85字节

代码语言:javascript
复制
If[#<2,1,n=#0[#-1];While[Count[(d=Divisors)@++n,1+Tr@Cases[d/@d@n,_?PrimeQ,2]]<1];n]&
票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/143826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档