Berechnen Sie die Summe der ersten n Primzahlen

15

Ich bin überrascht, dass diese Herausforderung nicht schon da ist, wie es so offensichtlich ist. (Oder ich bin überrascht, dass ich es nicht gefunden habe, und jeder wird es als Duplikat markieren.)

Aufgabe

Berechnen Sie bei einer nicht negativen ganzen Zahl die Summe der ersten Primzahlen und geben Sie sie aus.nnn

Beispiel 1

Für sind die ersten fünf Primzahlen:n=5

  • 2
  • 3
  • 5
  • 7
  • 11

Die Summe dieser Zahlen ist , daher muss das Programm ausgeben .282+3+5+7+11=2828

Beispiel # 2

Für sind die Primzahlen "erste Null" keine. Und die Summe ohne Zahlen ist - natürlich - .0n=00

Regeln

  • Sie können integrierte Funktionen verwenden, um beispielsweise zu überprüfen, ob eine Zahl eine Primzahl ist.
  • Das ist , also gewinnt die niedrigste Anzahl von Bytes in jeder Sprache!
xanoetux
quelle
2
OEIS - A7504 ( nebenbei : LOL dazu im Formelabschnitt "a (n) = A033286 (n) - A152535 (n).")
Jonathan Allan
@ JonathanAllan: Verwandt, aber nicht gleichwertig. Ich denke, es ist ein wichtiger Unterschied, wenn Sie Primzahlen in Reichweite oder eine Reihe von Primzahlen überprüfen. Was beide Aufgaben gemeinsam haben, ist a) zu überprüfen, ob eine Zahl eine Primzahl ist und b) Zahlen zu summieren - was vielen Code-Golf-Aufgaben hier gemeinsam ist.
Xanoetux

Antworten:

15

6502 Maschinencode- Routine, 75 Bytes

A0 01 84 FD 88 84 FE C4 02 F0 32 E6 FD A0 00 A5 FD C9 04 90 1F 85 64 B1 FB 85
65 A9 00 A2 08 06 64 2A C5 65 90 02 E5 65 CA D0 F4 C9 00 F0 DC C8 C4 FE D0 DB
A5 FD A4 FE 91 FB C8 D0 C8 A9 00 18 A8 C4 FE F0 05 71 FB C8 D0 F7 60

Erwartet einen Zeiger auf einen temporären Speicher in $fb/ $fcund die Anzahl der Primzahlen, die summiert werden sollen $2. Liefert die Summe in A(dem Akku-Register).

Nie irgendwelche Prime Checks im 6502 Maschinencode gemacht, also kommt es endlich;)

Beachten Sie, dass dies bei Eingaben> = 14 zu falschen Ergebnissen führt. Aufgrund des Überlaufs arbeitet der Code mit dem "natürlichen" Nummernbereich der 8-Bit-Plattform, der 0 - 255für vorzeichenlos ist .

Kommentierte Demontage

; function to sum the first n primes
;
; input:
;   $fb/$fc: pointer to a buffer for temporary storage of primes
;   $2:      number of primes to sum (n)
; output:
;   A:       sum of the first n primes
; clobbers:
;   $fd:     current number under primality test
;   $fe:     number of primes currently found
;   $64:     temporary numerator for modulo check
;   $65:     temporary divisor for modulo check
;   X, Y
 .primesum:
A0 01       LDY #$01            ; init variable for ...
84 FD       STY $FD             ; next prime number to test
88          DEY                 ; init number of found primes
 .mainloop:
84 FE       STY $FE             ; store current number of found primes
C4 02       CPY $02             ; compare with requested number
F0 32       BEQ .sum            ; enough primes -> calculate their sum
 .mainnext:
E6 FD       INC $FD             ; check next prime number
A0 00       LDY #$00            ; start check against first prime number
 .primecheckloop:
A5 FD       LDA $FD             ; load current number to check
C9 04       CMP #$04            ; smaller than 4?
90 1F       BCC .isprime        ; is a prime (shortcut to get list started)
85 64       STA $64             ; store to temp as numerator
B1 FB       LDA ($FB),Y         ; load from prime number table
85 65       STA $65             ; store to temp as divisor
A9 00       LDA #$00            ; init modulo to 0
A2 08       LDX #$08            ; iterate over 8 bits
 .bitloop:
06 64       ASL $64             ; shift left numerator
2A          ROL A               ; shift carry into modulo
C5 65       CMP $65             ; compare with divisor
90 02       BCC .bitnext        ; smaller -> to next bit
E5 65       SBC $65             ; otherwise subtract divisor
 .bitnext:
CA          DEX                 ; next bit
D0 F4       BNE .bitloop
C9 00       CMP #$00            ; compare modulo with 0
F0 DC       BEQ .mainnext       ; equal? -> no prime number
C8          INY                 ; next index in prime number table
C4 FE       CPY $FE             ; checked against all prime numbers?
D0 DB       BNE .primecheckloop ; no -> check next
 .isprime:
A5 FD       LDA $FD             ; prime found
A4 FE       LDY $FE             ; then store in table
91 FB       STA ($FB),Y
C8          INY                 ; increment number of primes found
D0 C8       BNE .mainloop       ; and repeat whole process
 .sum:
A9 00       LDA #$00            ; initialize sum to 0
18          CLC
A8          TAY                 ; start adding table from position 0
 .sumloop:
C4 FE       CPY $FE             ; whole table added?
F0 05       BEQ .done           ; yes -> we're done
71 FB       ADC ($FB),Y         ; add current entry
C8          INY                 ; increment index
D0 F7       BNE .sumloop        ; and repeat
 .done:
60          RTS

Beispiel C64 Assembler Programm mit der Routine:

Online-Demo

Code in ca65- Syntax:

.import primesum   ; link with routine above

.segment "BHDR" ; BASIC header
                .word   $0801           ; load address
                .word   $080b           ; pointer next BASIC line
                .word   2018            ; line number
                .byte   $9e             ; BASIC token "SYS"
                .byte   "2061",$0,$0,$0 ; 2061 ($080d) and terminating 0 bytes

.bss
linebuf:        .res    4               ; maximum length of a valid unsigned
                                        ; 8-bit number input
convbuf:        .res    3               ; 3 BCD digits for unsigned 8-bit
                                        ; number conversion
primebuf:       .res    $100            ; buffer for primesum function

.data
prompt:         .byte   "> ", $0
errmsg:         .byte   "Error parsing number, try again.", $d, $0

.code
                lda     #$17            ; set upper/lower mode
                sta     $d018

input:
                lda     #<prompt        ; display prompt
                ldy     #>prompt
                jsr     $ab1e

                lda     #<linebuf       ; read string into buffer
                ldy     #>linebuf
                ldx     #4
                jsr     readline

                lda     linebuf         ; empty line?
                beq     input           ; try again

                lda     #<linebuf       ; convert input to int8
                ldy     #>linebuf
                jsr     touint8
                bcc     numok           ; successful -> start processing
                lda     #<errmsg        ; else show error message and repeat
                ldy     #>errmsg
                jsr     $ab1e
                bcs     input

numok:          
                sta     $2
                lda     #<primebuf
                sta     $fb
                lda     #>primebuf
                sta     $fc
                jsr     primesum        ; call function to sum primes
                tax                     ; and ...
                lda     #$0             ; 
                jmp     $bdcd           ; .. print result

; read a line of input from keyboard, terminate it with 0
; expects pointer to input buffer in A/Y, buffer length in X
.proc readline
                dex
                stx     $fb
                sta     $fc
                sty     $fd
                ldy     #$0
                sty     $cc             ; enable cursor blinking
                sty     $fe             ; temporary for loop variable
getkey:         jsr     $f142           ; get character from keyboard
                beq     getkey
                sta     $2              ; save to temporary
                and     #$7f
                cmp     #$20            ; check for control character
                bcs     checkout        ; no -> check buffer size
                cmp     #$d             ; was it enter/return?
                beq     prepout         ; -> normal flow
                cmp     #$14            ; was it backspace/delete?
                bne     getkey          ; if not, get next char
                lda     $fe             ; check current index
                beq     getkey          ; zero -> backspace not possible
                bne     prepout         ; skip checking buffer size for bs
checkout:       lda     $fe             ; buffer index
                cmp     $fb             ; check against buffer size
                beq     getkey          ; if it would overflow, loop again
prepout:        sei                     ; no interrupts
                ldy     $d3             ; get current screen column
                lda     ($d1),y         ; and clear 
                and     #$7f            ;   cursor in
                sta     ($d1),y         ;   current row
output:         lda     $2              ; load character
                jsr     $e716           ;   and output
                ldx     $cf             ; check cursor phase
                beq     store           ; invisible -> to store
                ldy     $d3             ; get current screen column
                lda     ($d1),y         ; and show
                ora     #$80            ;   cursor in
                sta     ($d1),y         ;   current row
                lda     $2              ; load character
store:          cli                     ; enable interrupts
                cmp     #$14            ; was it backspace/delete?
                beq     backspace       ; to backspace handling code
                cmp     #$d             ; was it enter/return?
                beq     done            ; then we're done.
                ldy     $fe             ; load buffer index
                sta     ($fc),y         ; store character in buffer
                iny                     ; advance buffer index
                sty     $fe
                bne     getkey          ; not zero -> ok
done:           lda     #$0             ; terminate string in buffer with zero
                ldy     $fe             ; get buffer index
                sta     ($fc),y         ; store terminator in buffer
                sei                     ; no interrupts
                ldy     $d3             ; get current screen column
                lda     ($d1),y         ; and clear 
                and     #$7f            ;   cursor in
                sta     ($d1),y         ;   current row
                inc     $cc             ; disable cursor blinking
                cli                     ; enable interrupts
                rts                     ; return
backspace:      dec     $fe             ; decrement buffer index
                bcs     getkey          ; and get next key
.endproc

; parse / convert uint8 number using a BCD representation and double-dabble
.proc touint8
                sta     $fb
                sty     $fc
                ldy     #$0
                sty     convbuf
                sty     convbuf+1
                sty     convbuf+2
scanloop:       lda     ($fb),y
                beq     copy
                iny
                cmp     #$20
                beq     scanloop
                cmp     #$30
                bcc     error
                cmp     #$3a
                bcs     error
                bcc     scanloop
error:          sec
                rts
copy:           dey
                bmi     error
                ldx     #$2
copyloop:       lda     ($fb),y
                cmp     #$30
                bcc     copynext
                cmp     #$3a
                bcs     copynext
                sec
                sbc     #$30
                sta     convbuf,x
                dex
copynext:       dey
                bpl     copyloop
                lda     #$0
                sta     $fb
                ldx     #$8
loop:           lsr     convbuf
                lda     convbuf+1
                bcc     skipbit1
                ora     #$10
skipbit1:       lsr     a
                sta     convbuf+1
                lda     convbuf+2
                bcc     skipbit2
                ora     #$10
skipbit2:       lsr     a
                sta     convbuf+2
                ror     $fb
                dex
                beq     done
                lda     convbuf
                cmp     #$8
                bmi     nosub1
                sbc     #$3
                sta     convbuf
nosub1:         lda     convbuf+1
                cmp     #$8
                bmi     nosub2
                sbc     #$3
                sta     convbuf+1
nosub2:         lda     convbuf+2
                cmp     #$8
                bmi     loop
                sbc     #$3
                sta     convbuf+2
                bcs     loop
done:           lda     $fb
                clc
                rts
.endproc
Felix Palmen
quelle
4
Ich mag das so viel mehr als den ständigen Strom von Golfsprachen (vielleicht trage ich heute ein MOS 6502 T-Shirt).
Matt Lacey
1
@MattLacey danke :) Ich bin einfach zu faul, um all diese Sprachen zu lernen ... und ein paar Rätsel im 6502-Code zu machen, fühlt sich "natürlich" an, weil Platzsparen eigentlich eine Standard-Programmierpraxis auf diesem Chip ist :)
Felix Palmen
Ich muss ein MOS 6502 T-Shirt kaufen.
Titus
8

Python 2 , 49 Bytes

f=lambda n,t=1,p=1:n and p%t*t+f(n-p%t,t+1,p*t*t)

Verwendet den Satz von Wilson (wie von xnor in die Site eingeführt, glaube ich hier )

Probieren Sie es online!

Die Funktion fist rekursiv, mit einer anfänglichen Eingabe von nund einem Ende, wenn nNull erreicht wird, was diese Null ergibt (aufgrund der Logik and); nwird immer dann dekrementiert, wenn teine Testnummer , die sich mit jedem Anruf erhöht f, eine Primzahl ist. Der Haupttest ist dann, ob für das wir ein Quadrat der Fakultät in verfolgen .(n1)!  1(modn)p

Jonathan Allan
quelle
Ich habe eine der üblichen Hilfsfunktionen von Lynn angepasst und genau das Gleiche erreicht.
Mr. Xcoder
... ah, also wurde das Theorem von xnor in die Site eingeführt. Guter Nachschlagewerk, danke!
Jonathan Allan
6

05AB1E , 3 Bytes

ÅpO

Probieren Sie es online aus.

Erläuterung:

Åp     # List of the first N primes (N being the implicit input)
       #  i.e. 5 → [2,3,5,7,11]
  O    # Sum of that list
       #  i.e. [2,3,5,7,11] → 28
Kevin Cruijssen
quelle
6

Java 8, 89 Bytes

n->{int r=0,i=2,t,x;for(;n>0;r+=t>1?t+0*n--:0)for(t=i++,x=2;x<t;t=t%x++<1?0:t);return r;}

Probieren Sie es online aus.

Erläuterung:

n->{               // Method with integer as both parameter and return-type
  int r=0,         //  Result-sum, starting at 0
      i=2,         //  Prime-integer, starting at 2
      t,x;         //  Temp integers
  for(;n>0         //  Loop as long as `n` is still larger than 0
      ;            //    After every iteration:
       r+=t>1?     //     If `t` is larger than 1 (which means `t` is a prime):
           t       //      Increase `r` by `t`
           +0*n--  //      And decrease `n` by 1
          :        //     Else:
           0)      //      Both `r` and `n` remain the same
    for(t=i++,     //   Set `t` to the current `i`, and increase `i` by 1 afterwards
        x=2;       //   Set `x` to 2
        x<t;       //   Loop as long as `x` is still smaller than `t`
      t=t%x++<1?   //    If `t` is divisible by `x`:
         0         //     Set `t` to 0
        :          //    Else:
         t);       //     `t` remains the same
                   //   If `t` is still the same after this loop, it means it's a prime
  return r;}       //  Return the result-sum
Kevin Cruijssen
quelle
5

Perl 6 , 31 Bytes

{sum grep(&is-prime,2..*)[^$_]}

Probieren Sie es online!

Das is-primeeingebaute ist leider lang.

Scherzen
quelle
5

Brachylog , 8 7 Bytes

~lṗᵐ≠≜+

Probieren Sie es online!

1 Byte dank @sundar gespeichert.

Erläuterung

~l        Create a list of length input
  ṗᵐ      Each element of the list must be prime
    ≠     All elements must be distinct
     ≜    Find values that match those constraints
      +   Sum
Tödlich
quelle
~lṗᵐ≠≜+scheint zu funktionieren, für 7 Bytes (Auch ich bin neugierig, warum es Ausgabe 2 * Eingabe + 1 gibt, wenn ohne die Kennzeichnung ausgeführt.)
Sundar - Reinstate Monica
2
@sundar Ich habe mit dem Debugger nachgesehen und festgestellt, warum: Es werden keine Werte für die Primzahlen ausgewählt, aber es ist weiterhin bekannt, dass jeder einzelne [2,+inf)offensichtlich enthalten sein muss. Daher weiß es, dass die Summe von 5 Primzahlen (wenn die Eingabe 5 ist) mindestens sein muss 10, und es weiß teilweise, dass, da die Elemente unterschiedlich sein müssen, sie nicht alle 2 sein können, es also mindestens ist 11. TL; DR-Implementierung der impliziten Kennzeichnung ist nicht stark genug.
Fatalize
Das ist sehr interessant. Mir gefällt, dass der Grund nicht irgendeine Art von Syntax oder zufälliger Zufall bei der Implementierung ist, sondern etwas, das auf der Grundlage der Einschränkungen Sinn macht. Vielen Dank fürs Auschecken!
Sundar - Reinstate Monica
2

Retina , 41 Bytes

K`_
"$+"{`$
$%"_
)/¶(__+)\1+$/+`$
_
^_

_

Probieren Sie es online! Ich wollte weiter 1 hinzufügen, bis ich nPrimzahlen gefunden hatte, aber ich konnte nicht herausfinden, wie das in Retina geht, und griff auf eine verschachtelte Schleife zurück. Erläuterung:

K`_

Beginnen Sie mit 1.

"$+"{`

Loop- nZeiten.

$
$%"_

Kopieren Sie den vorherigen Wert und erhöhen Sie ihn.

)/¶(__+)\1+$/+`$
_

Erhöhen Sie es weiter, während es zusammengesetzt ist. (Der )schließt die äußere Schleife.)

^_

Löschen Sie das Original 1.

_

Summieren und in Dezimalzahl umwandeln.

Neil
quelle
2

MATL , 4 Bytes

:Yqs

Probieren Sie es online!

Erläuterung:

       % Implicit input: 5
:      % Range: [1, 2, 3, 4, 5]
 Yq    % The n'th primes: [2, 3, 5, 7, 11]
   s   % Sum: 28
Stewie Griffin
quelle
2

PHP, 66 Bytes

benutze wieder meine eigene Prime-Funktion ...

for(;$k<$argn;$i-1||$s+=$n+!++$k)for($i=++$n;--$i&&$n%$i;);echo$s;

Laufen Sie als Pipe mit -nroder probieren Sie es online aus .

Nervenzusammenbruch

for(;$k<$argn;      # while counter < argument
    $i-1||              # 3. if divisor is 1 (e.g. $n is prime)
        $s+=$n              # add $n to sum
        +!++$k              # and increment counter
    )
    for($i=++$n;        # 1. increment $n
        --$i&&$n%$i;);  # 2. find largest divisor of $n smaller than $n:
echo$s;             # print sum
Titus
quelle
gleiche Länge, eine Variable weniger:for(;$argn;$i-1||$s+=$n+!$argn--)for($i=++$n;--$i&&$n%$i;);echo$s;
Titus
2

Haskell , 48 Bytes

sum.(`take`[p|p<-[2..],all((>0).mod p)[2..p-1]])

Probieren Sie es online!

\p-> all((>0).mod p)[2..p-1]True0,12

ბიმო
quelle
2

C (gcc) , 70 Bytes

f(n,i,j,s){s=0;for(i=2;n;i++)for(j=2;j/i?s+=i,n--,0:i%j++;);return s;}

Probieren Sie es online!

Curtis Bechtel
quelle
Schlagen Sie n=sstattdessen vorreturn s
ceilingcat
2

C, C ++, D: 147 - 142 Bytes

int 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;}

5 Byte Optimierung für C und C ++:

-2 Bytes dank Zacharý

#define R return
int p(int a){if(a<4)R 1;for(int i=2;i<a;++i)if(!(a%i))R 0;R 1;}int f(int n){int c=0,v=1;while(n)if(p(++v))c+=v,--n;R c;}

ptestet, ob eine Zahl eine Primzahl ist, fsummiert die nersten Zahlen

Code zum Testen:

C / C ++:

for (int i = 0; i < 10; ++i)
    printf("%d => %d\n", i, f(i));

D Optimierte Antwort von Zacharý , 133 131 Bytes

D hat ein Golf-Template-System

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;}
HatsuPointerKun
quelle
1
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;}. Auch das C / C ++ / D kann int 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;}(wie bei der C / C ++ - Optimierung, nur Anpassung des Algorithmus abit)
Zacharý
Vielleicht könnten Sie für alle Antworten Komma verwenden, um zu {c+=v;--n;}sein c+=v,--n;?
Zacharý
Hier ist eine weitere für D (und möglicherweise auch für C / C ++, wenn auf ints zurückgekehrt):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;}
Zacharý
Schlagen Sie a>3&i<astatt i<aund entfernen Sieif(a<4)...
ceilingcat 20.11.18
2

Japt -x , 11 Bytes

;@_j}a°X}hA

Probieren Sie es online!

Mehrere Bytes dank einer neuen Sprachfunktion eingespart.

Erläuterung:

;@      }hA    :Get the first n numbers in the sequence:
     a         : Get the smallest number
      °X       : Which is greater than the previous result
  _j}          : And is prime
               :Implicitly output the sum
Kamil Drakari
quelle
1

JavaScript (ES6), 55 Byte

f=(k,n=2)=>k&&(g=d=>n%--d?g(d):d<2&&k--&&n)(n)+f(k,n+1)

Probieren Sie es online!

Arnauld
quelle
1

APL (Dyalog Unicode) , 7 + 9 = 16 Bytes

+/pco∘⍳

Probieren Sie es online!

9 zusätzliche Bytes zum Importieren der pco(und aller anderen) Dfn:⎕CY'dfns'

Wie:

+/pco∘⍳
        Generate the range from 1 to the argument
        Compose
  pco    P-colon (p:); without a left argument, it generates the first <right_arg> primes.
+/       Sum
J. Sallé
quelle
Müssen Sie kein weiteres Byte hinzufügen? import X(newline) X.something()in python wird mit der newline gezählt.
Zacharý
1

Ruby, 22 + 7 = 29 Bytes

Laufen mit ruby -rprime(+7)

->n{Prime.take(n).sum}
Piccolo
quelle
1

JAEL , 5 Bytes

#&kȦ

Erklärung (automatisch generiert):

./jael --explain '#&kȦ'
ORIGINAL CODE:  #&kȦ

EXPANDING EXPLANATION:
Ȧ => .a!

EXPANDED CODE:  #&k.a!,

#     ,                 repeat (p1) times:
 &                              push number of iterations of this loop
  k                             push nth prime
   .                            push the value under the tape head
    a                           push p1 + p2
     !                          write p1 to the tape head
       ␄                print machine state
Eduardo Hoefel
quelle
0

Python 2 , 63 59 56 51 Bytes

f=lambda n:n and prime(n)+f(n-1)
from sympy import*

Probieren Sie es online!


Gerettet:

  • -5 Bytes, danke an Jonathan Allan

Ohne Bibliotheken:

Python 2 , 83 Bytes

n,s=input(),0
x=2
while n:
 if all(x%i for i in range(2,x)):n-=1;s+=x
 x+=1
print s

Probieren Sie es online!

TFeld
quelle
f=lambda n:n and prime(n)+f(n-1)spart fünf (es könnte auch weiter golfbar sein)
Jonathan Allan
0

CJam , 21 Bytes

0{{T1+:Tmp!}gT}li*]:+


Explanation:
0{{T1+:Tmp!}gT}li*]:+ Original code

 {            }li*    Repeat n times
  {        }          Block
   T                  Get variable T | stack: T
    1+                Add one | Stack: T+1 
      :T              Store in variable T | Stack: T+1
        mp!           Is T not prime?     | Stack: !(isprime(T))
            g         Do while condition at top of stack is true, pop condition
             T        Push T onto the stack | Stack: Primes so far
0                 ]   Make everything on stack into an array, starting with 0 (to not throw error if n = 0)| Stack: array with 0 and all primes up to n
                   :+ Add everything in array

Probieren Sie es online!

lolad
quelle
0

F #, 111 Bytes

let f n=Seq.initInfinite id|>Seq.filter(fun p->p>1&&Seq.exists(fun x->p%x=0){2..p-1}|>not)|>Seq.take n|>Seq.sum

Probieren Sie es online!

Seq.initInfiniteErstellt eine unendlich lange Sequenz mit einer Generatorfunktion, die als Parameter den Elementindex verwendet. In diesem Fall ist die Generatorfunktion nur die Identitätsfunktion id.

Seq.filter Wählt nur die durch die unendliche Folge erzeugten Primzahlen aus.

Seq.takeNimmt die ersten nElemente in dieser Reihenfolge.

Und Seq.sumfasst sie schließlich zusammen.

Ciaran_McCarthy
quelle
0

cQuents , 3 Bytes

;pz

Probieren Sie es online!

Erläuterung

;    sum of first n terms for input n
 pz  each term is the next prime after the previous term
Stephen
quelle
Beachten Sie, dass die aktuelle Version Zstattz
Stephen
0

MEIN , 4 Bytes

⎕ṀΣ↵

Probieren Sie es online!

Ich bereue immer noch keine implizite Eingabe / Ausgabe in dieser Garbage-Sprache, sonst wären es zwei Bytes gewesen.

  • = Eingabe
  • = 1st ... nth prime inclusive
  • Σ = Summe
  • = Ausgabe
Zacharý
quelle
0

APL (NARS), 27 Zeichen, 54 Byte

{⍵=0:0⋄+/{⍵=1:2⋄¯2π⍵-1}¨⍳⍵}

{¯2π⍵} hier würde die n Primzahl zurückgeben, die sich von 2 unterscheidet. Also würde {⍵ = 1: 2⋄¯2π⍵-1} die n Primzahl 2 in der Zählung darin zurückgeben ...

RosLuP
quelle