Productos de Primes consecutivos

11

En el momento de la presentación en el sandbox, tenía una reputación de 17017, que todos ustedes podrán factorizar como 7 × 11 × 13 × 17, un producto de 4 primos consecutivos.

Escriba una función o programa para generar todos los productos de dos o más primos consecutivos hasta un entero de entrada n. Por ejemplo, dado n=143que debe generar 6, 15, 30, 35, 77, 105, 143(o formato de salida equivalente).

Se aplican restricciones normales en E / S y lagunas.

Este es el , por lo que gana el programa más corto.

Neil
fuente
44
oeis.org/A097889
Robert Fraser
2
¿Se debe ordenar la salida o no?
Fatalize
@Fatalize Tenía la intención de ordenarlo, pero veo que no lo especifiqué lo suficientemente bien y ya hay varias respuestas que no muestran una lista ordenada.
Neil

Respuestas:

6

Jalea , 14 10 bytes

(¡sin duda hay golf que hacer aquí! - sí ...)
-4 bytes gracias a @Dennis - reemplace el cheque por más de n usando un rango

ÆRẆP€ḟÆRfR

Nota: esto es extremadamente ineficiente y los resultados no están ordenados.

Pruébelo en TryItOnline

¿Cómo?

ÆRẆP€ḟÆRfR - main link takes an argument, n
ÆR    ÆR   - primes up to n
  Ẇ        - all sublists
   P€      - product for each
     ḟ     - filter out the primes (since the sublists include those of lnegth 1)
        fR - filter out any not in range [1,N]
             (yep, it's calculating all products of primes up to n - gross)
Jonathan Allan
fuente
2
No necesitas µy ³; >Ðḟfunciona bien solo. fREs aún más corto.
Dennis
@ Dennis: espero tu método superior. ¡Gracias!
Jonathan Allan
4

MATL , 25 20 bytes

Zq&Xf"@gnq?2MpG>~?6M

Enfoque similar al de la respuesta de Jonathan Allan .

Pruébalo en línea!


Versión anterior, 25 bytes

:YF!"@2<@sq0@0hhdz2=v?X@D

Esto obtiene los exponentes de descomposición de factores primos para todos los números desde 1la entrada. Para cada uno comprueba:

  1. Si todos los exponentes son menores que 2.
  2. Si la suma de todos los exponentes es mayor que 1.
  3. La matriz de exponentes se extiende con un cero adicional en cada extremo. Se calculan las diferencias consecutivas de la matriz extendida. Debe haber exactamente 2 diferencias distintas de cero.

Si se cumplen las tres condiciones, se muestra el número. Los resultados están en orden creciente.

Luis Mendo
fuente
4

Javascript (ES6), 105 104 bytes

n=>{for(i=1,P=[];i++<n;P[P.every(v=>i%v)?i:n]=i);P.map(i=>P.map(j=>j>i&&(p*=j)<=n&&console.log(p),p=i))}

Manifestación

var f =
n=>{for(i=1,P=[];i++<n;P[P.every(v=>i%v)?i:n]=i);P.map(i=>P.map(j=>j>i&&(p*=j)<=n&&console.log(p),p=i))}

f(143)

Arnauld
fuente
2

05AB1E , 17 15 bytes

L<ØŒ€PD¹>‹ÏDp_Ï

Explicación

L<Ø                 # get the first N primes, where N is the input
   Œ                # get all combinations of consecutive primes
    €P              # calculate the product of these sublists
      D¹>‹Ï         # keep only the products less than or equal to N
           Dp_Ï     # keep only those that aren't prime

Pruébalo en línea!

Emigna
fuente
1

Pyth, 18 bytes

f}PTftlY.:fP_YSQ)S

Un programa que toma la entrada de un entero en STDIN e imprime una lista de enteros.

Pruébalo en línea

Cómo funciona

f}PTftlY.:fP_YSQ)S  Program. Input: Q
              SQ    Yield [1, 2, 3, ..., Q]
          fP_Y      Filter that by primality
        .:      )   Yield all sublists of that
    f               Filter the sublists by:
      lY             Length
     t               -1
                    removing sublists of length 1
f                S  Filter [1, 2, 3, ..., Q] (implicit input fill) by:
  PT                 Prime factorisation
 }                   is in the sublists
                    Implicitly print
TheBikingViking
fuente
1

Jalea , 11 bytes

ÆfÆCI=1Ȧµ€T

No es la respuesta Jelly más corta, pero este enfoque es bastante eficiente y la salida está ordenada.

Pruébalo en línea!

Cómo funciona

ÆfÆCI=1Ȧµ€T  Main link. Argument: n

        µ€   Map the preceding chain over each k in [1, ..., n].
Æf             Compute all prime factors of k, with multiplicities.
  ÆC           Count the number of primes less than or equal to each prime factor.
               This maps the j-th to j.
    I          Increments; compute the forward differences of consecutive indices.
     =1        Compare each difference with 1.
       Ȧ       All; return 1 iff the array is non-empty and has no zeroes.
          T  Truth; yield all indices for which the chain returned 1.
Dennis
fuente