BIU-Nummern (oder summierte Nummern)

10

Wie man sie erkennt

Nehmen Sie eine positive ganze Zahl k. Finde seine Teiler . Finden Sie die unterschiedlichen Primfaktoren jedes Divisors . Fassen Sie alle diese Faktoren zusammen. Wenn diese Zahl (Summe) ein Teiler von k ist ( wenn die Summe k teilt ), dann ist diese Zahl k eine BIU-Zahl

Beispiele

Nehmen wir die Zahl. 54
Finden Sie alle Teiler: [1, 2, 3, 6, 9, 18, 27, 54]
Finden Sie die unterschiedlichen Primfaktoren jedes Divisors.
HINWEIS: Für den Fall 1nehmen wir als unterschiedliche Primfaktoren1

1  -> 1  
2  -> 2  
3  -> 3  
6  -> 2,3  
9  -> 3  
18 -> 2,3  
27 -> 3  
54 -> 2,3 

Nun nehmen wir die Summe aller dieser Primfaktoren
1+2+3+2+3+3+2+3+3+2+3=27
27dividiert 54 (lässt keinen Rest übrig).
Ist 54 also eine BIU-Zahl .

Weitere (schnell) Beispiel für k=55
Divisoren: [1,5,11,55]
Summe der verschiedenen Primfaktoren: 1+5+11+5+11=33
33 ist nicht ein Teiler von 55, das ist , warum 55ist nicht eine BIU - Nummer .

BIU-Nummern

Hier sind die ersten 20 von ihnen:

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

Aber diese Liste geht weiter und es gibt viele BIU-Nummern , die darauf warten, von Ihnen entdeckt zu werden!

Die Herausforderung

Eine ganze Zahl gegeben n>0als Eingang , Ausgang der n - ten Reihe BIU

Testfälle

Eingabe-> Ausgabe

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

Dies ist kürzeste Antwort in Bytes gewinnt!


quelle
2
Aber 1ist nicht Prime ...
Stephen
3
@ Stephen deshalb habe ich gesagt "Für den Fall von 1 nehmen wir als eindeutigen Primfaktor 1". Dies ist meine Herausforderung und dies ist eine der Regeln dieser Herausforderung. Ich habe nicht gesagt, dass 1 die Primzahl ist.
4
Warum heißen die Nummern "BIU"?
Mischa Lawrow
4
Ich bin nicht sicher, aber ich denke, dass es mit bisexuellen intellektuellen Einhörnern zu tun hat, die sie in ihrem täglichen Leben benutzen (natürlich nicht in unserem Universum ...)
5
Downvoters, sei nicht schüchtern. Teilen Sie Ihre Gedanken mit dem Rest von uns.

Antworten:

5

Gelee , 16 15 Bytes

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

Probieren Sie es online aus!

Woohoo für Builtins (aber sie verstecken sich manchmal auf mysteriöse Weise vor mir, also -1 Byte dank @HyperNeutrino )

Wie es funktioniert

Æ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
fireflame241
quelle
-1 Byte mit ÆfQ€anstelle vonÆFḢ€€
HyperNeutrino
2
but they mysteriously hide from me sometime"Jelly ist ein Spiel von Atom Hide und Programmierer suchen" ~ i cri everytim
HyperNeutrino
Ich denke, Sie können 1 Byte mit sparen ÆDÆFSSḢ‘ḍ.
Arnauld
3

Mathematica, 85 Bytes

If[#<2,1,n=#0[#-1];While[Count[(d=Divisors)@++n,1+Tr@Cases[d/@d@n,_?PrimeQ,2]]<1];n]&
Mischa Lawrow
quelle
3

Schale , 13 Bytes

!fṠ¦ö→ΣṁoupḊN

Probieren Sie es online aus!

Explantation

  Ṡ¦ö→Σṁ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
H.PWiz
quelle
2

Eigentlich 16 Bytes

u⌠;÷♂y♂iΣu@%Y⌡╓N

Probieren Sie es online aus!

Erläuterung:

u⌠;÷♂y♂iΣu@%Y⌡╓N
u⌠;÷♂y♂iΣu@%Y⌡╓   first n+1 numbers x starting with x=0 where
   ÷                divisors
    ♂y              prime factors of divisors
      ♂iΣu          sum of prime factors of divisors, plus 1
  ;       @%        x mod sum
            Y       is 0
               N  last number in list
Mego
quelle
2

Pyth , 22 Bytes

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

Probieren Sie es hier aus!

Dies ist meine erste Pyth-Lösung. Ich habe sie dank der Empfehlungen einiger sehr freundlicher Benutzer im Chat gelernt: -) ... Die Lösung dauerte ungefähr eine Stunde.

Erläuterung

ef | qZ1!% Zhssm {Pd * M {yP - Gesamtes Programm. Q = Eingabe.

 .f - Erste Q-Ganzzahlen mit wahrheitsgemäßen Ergebnissen unter Verwendung einer Variablen Z.
     qZ1 - Ist Z gleich 1?
   | - Logisches ODER.
                   {yP - Primfaktoren, Powerset, Deduplizieren.
                 * M - Holen Sie sich das Produkt von jedem. Dieser Chunck und ^ sind für Teiler.
              m} Pd - Ermittelt die eindeutigen Primfaktoren von jedem.
           ss - Abflachen und summieren.
          h - Inkrement (um mit dieser 1 umzugehen, bah)
       % Z - Modulo die aktuelle ganze Zahl um die obige Summe.
      ! - Logische Negation. 0 -> Richtig,> 0 -> Falsch.
e - Letztes Element.

quelle
1

Haskell , 115 Bytes

Alle Listenverständnisse hier können wahrscheinlich heruntergespielt werden, aber ich bin mir nicht sicher, wie. Golfvorschläge willkommen! Probieren Sie es online aus!

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

Diese Antwort besteht eigentlich aus drei Funktionen, die zusammengefügt werden.

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)
Sherlock9
quelle
0

Japt , 22 21 Bytes

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

Probier es aus

Ich denke, die gFunktionsmethode sollte zu einer kürzeren Lösung führen, aber ich kann nicht herausfinden, wie es funktioniert!


Erläuterung

Implizite Eingabe einer Ganzzahl U.

@                  }a

Geben Sie ab 0die erste Zahl zurück, die true zurückgibt, wenn Sie die folgende Funktion durchlaufen, wobei Xes sich um die aktuelle Zahl handelt.

Xâ ®   Ã

Holen Sie sich die Divisoren ( â) von Xund durchlaufen Sie jeweils eine Funktion.

k â

Holen Sie sich die Faktoren ( k) des aktuellen Elements und entfernen Sie die Duplikate ( â).

xx

Reduzieren Sie das Array durch Hinzufügen, nachdem Sie zuerst dasselbe für jedes Sub-Array getan haben.

Ä

1Zum Ergebnis hinzufügen .

Xv

Prüfen Sie, ob Xdiese Zahl teilbar ist.

Inkrementieren Sie J(anfänglich -1) um das Ergebnis dieses Tests.

¥

Überprüfen Sie die Gleichheit mit U.

Zottelig
quelle