Me sorprende que este desafío aún no esté aquí, ya que es tan obvio. (O me sorprende no haberlo encontrado y cualquiera lo marcará como duplicado).
Tarea
Dado un número entero no negativo , calcule la suma de los primeros primos y suéltelo.
Ejemplo 1
Para , los primeros cinco primos son:
- 2
- 3
- 5 5
- 7 7
- 11
La suma de estos números es , por lo que el programa tiene que generar .
Ejemplo # 2
Para , los primos "primer cero" son ninguno. Y la suma de ningún número es, por supuesto, .
Reglas
- Puede usar elementos integrados, por ejemplo, para verificar si un número es primo.
- Este es el código de golf , por lo que gana el menor número de bytes en cada idioma.
Respuestas:
6502 rutina de código de máquina , 75 bytes
Espera un puntero a algún almacenamiento temporal en
$fb
/$fc
y el número de primos para resumir$2
. Devuelve la suma enA
(el registro accu).Nunca hice algunas comprobaciones principales en el código de máquina 6502, así que aquí finalmente viene;)
Tenga en cuenta que esto comienza a dar resultados incorrectos para las entradas> = 14. Esto se debe al desbordamiento, el código funciona con el rango de números "natural" de la plataforma de 8 bits que es
0 - 255
para sin signo .Desmontaje comentado
Ejemplo de programa ensamblador C64 usando la rutina:
Demostración en línea
Código en sintaxis ca65 :
fuente
Python 2 , 49 bytes
Utiliza el teorema de Wilson (como lo introdujo xnor en el sitio, creo que aquí )
Pruébalo en línea!
La función(n−1)! ≡ −1(modn)
f
es recursiva, con una entrada inicial den
y una cola cuandon
llega a cero, produciendo ese cero (debido a la lógicaand
);n
se decrementa siempre quet
un número de prueba que se incrementa con cada llamada af
, es primo. ¡La prueba principal es si para el cual mantenemos una pista de un cuadrado del factorial en.p
fuente
Jalea , 4 bytes
Mi primer programa de gelatina
Pruébalo en línea!
fuente
ÆN€S
también lo haría.05AB1E , 3 bytes
Pruébalo en línea.
Explicación:
fuente
Java 8, 89 bytes
Pruébalo en línea.
Explicación:
fuente
Perl 6 , 31 bytes
Pruébalo en línea!
El
is-prime
incorporado es lamentablemente largo.fuente
J , 8 bytes
Pruébalo en línea!
fuente
Brachylog ,
87 bytesPruébalo en línea!
Guardado 1 byte gracias a @sundar.
Explicación
fuente
~lṗᵐ≠≜+
Parece que funciona, de 7 bytes (también, tengo curiosidad por qué se da salida 2 * Entrada + 1 si plazo sin el marcaje.)[2,+inf)
obviamente. Por lo tanto, sabe que la suma de 5 primos (si la entrada es 5) debe ser al menos10
, y sabe parcialmente que debido a que los elementos deben ser diferentes, no todos pueden ser 2, por lo que es al menos11
. TL; La implementación de DR de la labelización implícita no es lo suficientemente fuerte.Casco , 4 bytes
Pruébalo en línea!
Σ↑
fuente
İ€
es finito.Adjunto , 10 bytes
Pruébalo en línea!
ho hum
fuente
Retina , 41 bytes
Pruébalo en línea! Quería seguir sumando 1 hasta que encontré
n
primos, pero no pude averiguar cómo hacerlo en Retina, así que recurrí a un bucle anidado. Explicación:Comience con 1.
n
Tiempos de bucle .Haga una copia del valor anterior e increméntelo.
Sigue incrementándolo mientras está compuesto. (
)
Cierra el bucle externo).Eliminar el original
1
.Suma y convierte a decimal.
fuente
MATL , 4 bytes
Pruébalo en línea!
Explicación:
fuente
PHP, 66 bytes
usando mi propia función principal de nuevo ...
Ejecutar como tubería
-nr
o probarlo en línea .Descompostura
fuente
for(;$argn;$i-1||$s+=$n+!$argn--)for($i=++$n;--$i&&$n%$i;);echo$s;
Haskell , 48 bytes
Pruébalo en línea!
\p-> all((>0).mod p)[2..p-1]
True
fuente
C (gcc) , 70 bytes
Pruébalo en línea!
fuente
n=s
lugar dereturn s
C, C ++, D:
147142 bytesOptimización de 5 bytes para C y C ++:
-2 bytes gracias a Zacharý
p
prueba si un número es primo,f
suma losn
primeros númerosCódigo utilizado para probar:
C / C ++:
D Respuesta optimizada de Zacharý ,
133131 bytesD tiene un sistema de plantillas de golf
fuente
T p(T)(T a){if(a<4)return 1;for(T i=2;i<a;)if(!(a%i++))return 0;return 1;}T f(T)(T n){T c,v=1;while(n)if(p(++v)){c+=v;--n;}return c;}
. Además, el C / C ++ / D puede serint p(int a){if(a<4)return 1;for(int i=2;i<a;++i)if(!(a%i))return 0;return 1;}int f(int n){int c=0,v=1;while(n)if(p(++v)){c+=v;--n;}return c;}
(igual que la optimización C / C ++, solo ajustando el algoritmo){c+=v;--n;}
seac+=v,--n;
?int
T p(T)(T a){T r=1,i=2;for(;i<a;)r=a%i++?r:0;return r;}T f(T)(T n){T c,v=1;while(n)if(p(++v))c+=v,--n;return c;}
a>3&i<a
lugar dei<a
y eliminarif(a<4)...
Japt
-x
, 11 bytesPruébalo en línea!
Guardado varios bytes gracias a una nueva función de idioma.
Explicación:
fuente
JavaScript (ES6), 55 bytes
Pruébalo en línea!
fuente
Stax , 6 bytes
Ejecutar y depurarlo
Explicación:
fuente
APL (Dyalog Unicode) , 7 + 9 = 16 bytes
Pruébalo en línea!
9 bytes adicionales para importar el
pco
(y todos los demás) Dfn:⎕CY'dfns'
Cómo:
fuente
import X
(nueva línea)X.something()
en python se cuenta con la nueva línea.Ruby, 22 + 7 = 29 bytes
Corre con
ruby -rprime
(+7)fuente
Pari / GP , 20 bytes
Pruébalo en línea!
fuente
JAEL , 5 bytes
Explicación (generada automáticamente):
fuente
Python 2 ,
63595651 bytesPruébalo en línea!
Salvado:
Sin libs:
Python 2 , 83 bytes
Pruébalo en línea!
fuente
f=lambda n:n and prime(n)+f(n-1)
ahorra cinco (también podría ser golfable)Pyke , 4 bytes
Pruébalo aquí!
fuente
CJam , 21 bytes
Pruébalo en línea!
fuente
F #, 111 bytes
Pruébalo en línea!
Seq.initInfinite
crea una secuencia infinitamente larga con una función generadora que toma, como parámetro, el índice del elemento. En este caso, la función de generador es solo la función de identidadid
.Seq.filter
selecciona solo los números creados por la secuencia infinita que son primos.Seq.take
toma el primeron
elementos en esa secuencia.Y finalmente, los
Seq.sum
resume.fuente
cQuents , 3 bytes
Pruébalo en línea!
Explicación
fuente
Z
lugar dez
MY , 4 bytes
Pruébalo en línea!
Aún lamentando que no haya entradas / salidas implícitas en este lenguaje basura, de lo contrario habría sido de dos bytes.
⎕
= entradaṀ
= 1er ... enésimo primer inclusivoΣ
= suma↵
= salidafuente
APL (NARS), 27 caracteres, 54 bytes
{¯2π⍵} aquí devolvería el n primo diferente de 2. Entonces {⍵ = 1: 2⋄¯2π⍵-1} devolvería el n primo 2 en cuenta en él ...
fuente