Numery BIU (lub liczby sumowane)

10

Jak je dostrzec?

Weź dodatnią liczbę całkowitą k. Znajdź jego dzielniki . Znajdź odrębne czynniki pierwsze każdego dzielnika . Zsumuj wszystkie te czynniki razem. Jeśli ta liczba (suma) jest dzielnikiem k ( jeśli suma dzieli k ), to ta liczba k jest liczbą BIU

Przykłady

Weźmy liczbę 54
Znajdź wszystkie dzielniki: [1, 2, 3, 6, 9, 18, 27, 54]
Znajdź odrębne czynniki pierwsze każdego dzielnika
UWAGA: W przypadku 1przyjmujemy jako odrębny czynnik pierwszy1

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

Teraz bierzemy sumę wszystkich tych pierwszych czynników
1+2+3+2+3+3+2+3+3+2+3=27
27dzielących 54 (nie pozostawia resztek)
Więc, 54 jest to liczba BIU .

Innym (szybkie) przykład dla k=55
dzielników: [1,5,11,55]
Sum odrębnych czynniki pierwsze: 1+5+11+5+11=33
33 to NIE dzielnikiem 55, dlatego 55to NIE liczba BIU .

Numery BIU

Oto pierwsze 20 z nich:

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

ale ta lista jest długa i istnieje wiele numerów BIU , które czekają na odkrycie przez ciebie!

Wyzwanie

Biorąc pod uwagę liczbę całkowitą n>0jako wejście , wyjście n-ty numer BIU

Przypadki testowe

Wejście-> Wyjście

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

To jest Najkrótsza odpowiedź w bajtach wygrywa!


źródło
2
Ale 1to nie jest pierwsza ...
Stephen
3
@Stephen dlatego powiedziałem „W przypadku 1 przyjmujemy jako odrębny czynnik pierwszy 1”. To jest moje wyzwanie i jest to jedna z zasad tego wyzwania. Nie powiedziałem, że 1 jest liczbą pierwszą.
4
Dlaczego liczby nazywane są „BIU”?
Misha Lavrov
4
Nie jestem pewien, ale myślę, że ma to związek z biseksualnymi jednorożcami intelektualnymi używającymi ich w życiu codziennym (oczywiście nie w naszym wszechświecie ...)
5
Downvoters, nie wstydź się. Podziel się swoimi przemyśleniami z resztą z nas.

Odpowiedzi:

5

Galaretka , 16 15 bajtów

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

Wypróbuj online!

Woohoo dla wbudowanych (ale czasem tajemniczo się przed mną ukrywają, więc -1 bajt dzięki @HyperNeutrino )

Jak to działa

Æ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
źródło
-1 bajt ÆfQ€zamiastÆFḢ€€
HyperNeutrino
2
but they mysteriously hide from me sometime„Galaretka to gra polegająca na
chowaniu
Myślę, że możesz zaoszczędzić 1 bajt ÆDÆFSSḢ‘ḍ.
Arnauld
3

Mathematica, 85 bajtów

If[#<2,1,n=#0[#-1];While[Count[(d=Divisors)@++n,1+Tr@Cases[d/@d@n,_?PrimeQ,2]]<1];n]&
Misza Ławrow
źródło
3

Łuska , 13 bajtów

!fṠ¦ö→ΣṁoupḊN

Wypróbuj online!

Wyjaśnienie

  Ṡ¦ö→Σṁ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
źródło
2

Właściwie 16 bajtów

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

Wypróbuj online!

Wyjaśnienie:

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
źródło
2

Pyth , 22 bajty

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

Wypróbuj tutaj!

To jest moje pierwsze w historii rozwiązanie Pyth, zacząłem się go uczyć dzięki zaleceniom bardzo miłych użytkowników na czacie: -) ... Rozwiązanie zajęło mi około godziny.

Wyjaśnienie

ef | qZ1!% Zhssm {Pd * M {yP - Cały program. Q = dane wejściowe.

 .f - Pierwsze Q liczby całkowite z prawdziwymi wynikami, przy użyciu zmiennej Z.
     qZ1 - Czy Z jest równe 1?
   | - Logiczne OR.
                   {yP - Czynniki pierwsze, powerset, deduplikacja.
                 * M - zdobądź iloczyn każdego z nich. Ten chunck i ^ są dla dzielników.
              m.} Pd - zdobądź unikalne czynniki pierwsze każdego.
           ss - Spłaszcz i sumuj.
          h - Przyrost (aby obsłużyć 1, bah)
       % Z - Modulo bieżącą liczbę całkowitą według powyższej sumy.
      ! - Logiczna negacja. 0 -> Prawda,> 0 -> Fałsz.
e - ostatni element.

źródło
1

Haskell , 115 bajtów

Wszystkie zawarte tutaj wyliczenia z listy można prawdopodobnie zagrać w golfa, ale nie jestem pewien, jak to zrobić. Zapraszamy do gry w golfa! Wypróbuj online!

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

Ta odpowiedź to tak naprawdę trzy funkcje razem.

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
źródło
0

Japt , 22 21 bajtów

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

Sprawdź to

Wydaje mi się, że gmetoda funkcji powinna prowadzić do krótszego rozwiązania, ale nie mogę zrozumieć, jak to działa!


Wyjaśnienie

Domniemane wprowadzenie liczby całkowitej U.

@                  }a

Zaczynając od 0, zwróć pierwszą liczbę, która zwraca wartość true po przejściu przez następującą funkcję, Xbędąc bieżącą liczbą.

Xâ ®   Ã

Pobierz divisors ( â) Xi przekaż każdy przez funkcję.

k â

Pobierz współczynniki ( k) bieżącego elementu i usuń duplikaty ( â).

xx

Zredukuj tablicę, dodając po tym, jak najpierw zrobisz to samo dla każdej pod-macierzy.

Ä

Dodaj 1do wyniku.

Xv

Sprawdź, czy Xmożna podzielić przez tę liczbę.

Wzrost J(początkowo -1) o wynik tego testu.

¥

Sprawdź równość z U.

Kudłaty
źródło