หมายเลข BIU (หรือตัวเลขที่รวมแล้ว)


10

วิธีสังเกตพวกมัน

ใช้จำนวนเต็มบวก 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

หมายเลข BIU

นี่คือ 20 อันดับแรกของพวกเขา:

1,21,54,290,735,1428,1485,1652,2262,2376,2576,2580,2838,2862,3003,3862,3003,3875,4221,4745,5525,5550,5550,5550,5550 ...

แต่รายการนี้จะดำเนินต่อไปและมีหมายเลข BIU จำนวนมากที่กำลังรอคุณอยู่!

ความท้าทาย

ได้รับจำนวนเต็มn>0เป็นอินพุต , เอาท์พุทจำนวน Biu ที่ n

กรณีทดสอบ

Input-> เอาท์พุท

1->1  
2->21   
42->23595  
100->118300    
200->415777    
300->800175    

นี่คือคำตอบที่สั้นที่สุดเป็นผู้ชนะ!


2
แต่1ไม่ได้เป็นนายก ...
Stephen

3
@ สตีเฟ่นนั่นเป็นเหตุผลว่าทำไมฉันถึงพูดว่า "สำหรับกรณีของ 1 เราถือว่าเป็นปัจจัยหลักที่แตกต่างกัน 1" นี่คือความท้าทายของฉันและนี่เป็นหนึ่งในกฎของความท้าทายนี้ฉันไม่ได้บอกว่า 1 เป็นสิ่งสำคัญ

4
ทำไมตัวเลขจึงถูกเรียกว่า "BIU"
Misha Lavrov

4
ฉันไม่แน่ใจ แต่ฉันคิดว่ามันเกี่ยวข้องกับยูนิคอร์นทางปัญญา bisexual ที่ใช้พวกมันในชีวิตประจำวันของพวกเขา (ไม่ใช่ในจักรวาลของเราแน่นอน ... )

5
Downvoters ไม่ต้องอาย แบ่งปันความคิดของคุณกับพวกเราที่เหลือ

คำตอบ:


5

เยลลี่ , 16 15 ไบต์

ÆDÆfQ€SS‘ḍ
1Ç#Ṫ

ลองออนไลน์!

Woohoo สำหรับ builtins (แต่บางครั้งพวกเขาก็ซ่อนตัวจากฉันอย่างลับ ๆ เพื่อ-1 ไบต์ขอบคุณ @HperperNeutrino )

มันทำงานอย่างไร

ÆDÆfQ€SS‘ḍ - define helper function: is input a BIU number?
ÆD             - divisors
  Æf           - list of prime factors
    Q€         - now distinct prime factors
      SS       - sum, then sum again ('' counts as 0)
        ‘      - add one (to account for '')
         ḍ     - does this divide the input?

1Ç#Ṫ - main link, input n
  #     - starting at 
1          - 1
        - get the first n integers which meet:
 Ç         - helper link
   Ṫ    - tail

-1 ไบต์ใช้ÆfQ€แทนÆFḢ€€
HyperNeutrino

2
but they mysteriously hide from me sometime"Jelly เป็นเกมซ่อนตัวของอะตอมและโปรแกรมเมอร์แสวงหา" ~ i cri everytim
HyperNeutrino

ฉันคิดว่าคุณสามารถบันทึก 1 ÆDÆFSSḢ‘ḍไบต์ด้วย
Arnauld



3

Husk , 13 ไบต์

!fṠ¦ö→ΣṁoupḊN

ลองออนไลน์!

Explantaion

  Ṡ¦ö→Σṁ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


2

Pyth , 22 ไบต์

e.f|qZ1!%Zhssm{Pd*M{yP

ลองที่นี่!

นี่เป็นโซลูชั่น Pyth แรกของฉันฉันเริ่มเรียนรู้จากคำแนะนำของผู้ใช้ที่ใจดีในการแชท: -) ... ใช้เวลาประมาณหนึ่งชั่วโมงในการแก้ปัญหา

คำอธิบาย

ef | qZ1!% Zhssm {Pd * M {yP - โปรแกรมทั้งหมด Q = อินพุต

 .f - จำนวนเต็ม Q แรกที่มีผลลัพธ์ที่แท้จริงโดยใช้ตัวแปร Z
     qZ1 - Z เท่ากับ 1 หรือไม่
   | - ตรรกะหรือ
                   {yP - ปัจจัยสำคัญ, powerset, deduplicate
                 * M - รับผลิตภัณฑ์ของแต่ละคน chunck และ ^ นี้สำหรับตัวหาร
              m} Pd - รับปัจจัยสำคัญเฉพาะของแต่ละคน
           เอสเอส - แบนและผลรวม
          h - เพิ่มขึ้น (เพื่อจัดการ 1, บาห์)
       % Z - โมดูโลจำนวนเต็มปัจจุบันด้วยผลรวมข้างต้น
      ! - การปฏิเสธเชิงตรรกะ 0 -> จริง,> 0 -> เท็จ
e - องค์ประกอบสุดท้าย

1

Haskell , 115 ไบต์

ความเข้าใจในรายการทั้งหมดที่นี่อาจจะลงเล่นกอล์ฟ แต่ฉันไม่แน่ใจว่าจะทำอย่างไร ยินดีต้อนรับคำแนะนำการเล่นกอล์ฟ! ลองออนไลน์!

x!y=rem x y<1
b n=[a|a<-[1..],a!(1+sum[sum[z|z<-[2..m],m!z,and[not$z!x|x<-[2..z-1]]]|m<-[x|x<-[2..a],a!x]])]!!(n-1)

Ungolfing

คำตอบนี้เป็นจริงสามหน้าที่ผสมกัน

divisors a = [x | x <- [2..a], rem a x == 0]
sumPrimeDivs m = sum [z | z <- [2..m], rem m z == 0, and [rem z x /= 0 | x <- [2..z-1]]]
biu n = [a | a <- [1..], rem a (1 + sum [sumPrimeDivs m | m <- divisors a]) == 0] !! (n-1)

0

Japt , 22 21 ไบต์

@¥(J±XvXâ ®k âÃxx Ä}a

ทดสอบมัน

ฉันรู้สึกว่าgวิธีการใช้งานควรนำไปสู่วิธีแก้ปัญหาที่สั้นกว่า แต่ฉันไม่สามารถหาวิธีใช้งานได้!


คำอธิบาย

Uการป้อนข้อมูลโดยนัยของจำนวนเต็ม

@                  }a

เริ่มต้นจาก0คืนค่าหมายเลขแรกที่ส่งกลับค่าจริงเมื่อส่งผ่านฟังก์ชันต่อไปนี้โดยXเป็นหมายเลขปัจจุบัน

Xâ ®   Ã

รับตัวหาร ( â) ของXและผ่านแต่ละฟังก์ชัน

k â

รับปัจจัย ( k) ขององค์ประกอบปัจจุบันและลบรายการที่ซ้ำกัน ( â)

xx

ลดอาร์เรย์ด้วยการเพิ่มหลังจากทำเช่นเดียวกันกับแต่ละอาร์เรย์ย่อย

Ä

เพิ่ม1ไปยังผลลัพธ์

Xv

ทดสอบว่าXหารด้วยจำนวนนั้นได้ไหม

เพิ่มขึ้นJ(เริ่มแรก-1) จากผลลัพธ์ของการทดสอบนั้น

¥

Uตรวจสอบเพื่อความเท่าเทียมกันด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.