Números de BIU (o números sumados)

10

Cómo detectarlos

Toma un entero positivo k. Encuentra sus divisores . Encuentra los factores primos distintos de cada divisor . Suma todos estos factores juntos. Si este número (suma) es un divisor de k ( si la suma divide k ) entonces, este número k, es un número BIU

Ejemplos

Tomemos el número 54
Encuentra todos los divisores: [1, 2, 3, 6, 9, 18, 27, 54]
Encuentra los factores primos distintos de cada divisor
NOTA: Para el caso de 1tomamos como factor primo distinto1

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

Ahora tomamos la suma de todos estos factores primos que
1+2+3+2+3+3+2+3+3+2+3=27
27divide 54 (no deja resto)
Entonces, 54 es un número BIU .

Otro ejemplo (rápido) para k=55
Divisores: [1,5,11,55]
Suma de factores primos distintos: NO1+5+11+5+11=33
33 es un divisor de 55, por eso NO es un número BIU .55

Números BIU

Aquí están los primeros 20 de ellos:

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

¡pero esta lista continúa y hay muchos números de BIU que esperan ser descubiertos por usted!

El reto

Dado un entero n>0como entrada , genera el enésimo número de BIU

Casos de prueba

Entrada-> Salida

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

Esto es ¡La respuesta más corta en bytes gana!


fuente
2
Pero 1no es primo ...
Stephen
3
@Stephen por eso dije "Para el caso de 1 tomamos como factor primo distinto 1". Este es mi desafío y esta es una de las reglas de este desafío. No dije que 1 es primo.
44
¿Por qué los números se llaman "BIU"?
Misha Lavrov
44
No estoy seguro pero creo que tiene que ver con unicornios intelectuales bisexuales usarlos en su vida cotidiana (no en nuestro universo, por supuesto ...)
55
Votantes, no seas tímido. Comparte tus pensamientos con el resto de nosotros.

Respuestas:

5

Jalea , 16 15 bytes

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

Pruébalo en línea!

Woohoo por las construcciones (pero a veces se esconden misteriosamente de mí, así que -1 byte gracias a @HyperNeutrino )

Cómo funciona

Æ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
fuente
-1 byte usando en ÆfQ€lugar deÆFḢ€€
HyperNeutrino
2
but they mysteriously hide from me sometime"Jelly es un juego de ocultación atómica y búsqueda de programadores" ~ i cri
everytim
Creo que puedes guardar 1 byte con Æ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]&
Misha Lavrov
fuente
3

Casco , 13 bytes

!fṠ¦ö→ΣṁoupḊN

Pruébalo en línea!

Explantacion

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

En realidad , 16 bytes

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

Pruébalo en línea!

Explicación:

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
fuente
2

Pyth , 22 bytes

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

Pruébalo aquí!

Esta es mi primera solución Pyth, comencé a aprenderla gracias a las recomendaciones de algunos usuarios muy amables en el chat: -) ... Me tomó alrededor de una hora resolverla.

Explicación

ef | qZ1!% Zhssm {Pd * M {yP - Todo el programa. Q = entrada.

 .f - Primeros enteros Q con resultados verdaderos, usando una variable Z.
     qZ1 - ¿Z es igual a 1?
   El | - OR lógico.
                   {yP: factores primos, conjunto de potencias, deduplicación.
                 * M - Obtenga el producto de cada uno. Este fragmento y ^ son para divisores.
              m} Pd: obtén los factores primos únicos de cada uno.
           ss: aplanar y sumar.
          h - Incremento (para manejar ese 1, bah)
       % Z: modula el entero actual por la suma anterior.
      ! - Negación lógica. 0 -> Verdadero,> 0 -> Falso.
e - Último elemento.

fuente
1

Haskell , 115 bytes

Todas las comprensiones de la lista aquí probablemente se pueden reducir, pero no estoy seguro de cómo. Sugerencias de golf bienvenidas! Pruébalo en línea!

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)

No golfista

Esta respuesta es en realidad tres funciones combinadas.

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
fuente
0

Japt , 22 21 bytes

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

Pruébalo

¡Siento que el gmétodo de función debería conducir a una solución más corta, pero no puedo entender cómo funciona!


Explicación

Entrada implícita de entero U.

@                  }a

A partir de 0, devuelve el primer número que devuelve verdadero cuando se pasa por la siguiente función, Xsiendo el número actual.

Xâ ®   Ã

Obtenga los divisores ( â) de Xy pase cada uno a través de una función.

k â

Obtenga los factores ( k) del elemento actual y elimine los duplicados ( â).

xx

Reduzca la matriz agregando después de hacer primero lo mismo con cada sub-matriz.

Ä

Añadir 1al resultado.

Xv

Prueba si Xes divisible por ese número.

Incremento J(inicialmente -1) por el resultado de esa prueba.

¥

Verifique la igualdad con U.

Lanudo
fuente