7103 primtal

Det finns många algoritmer för att ta fram primtal. Nedan följer en enkel.

Ett tal är ett primtal om det bara är jämnt delbart med sig själv och ett.

Algoritm

  1. tom lista som heter primes
  2. lista numbers med tal 2, 3, 4, 5, ... valfritt slut
  3. lista numbers_keep med tal som ska behållas, tom vid start
  4. flytta första talet i numbers till listan primes
  5. spara i variabeln prime också
  6. kopiera alla tal i numbers som INTE är jämt delbara med prime
  7. ersätt talen i numbers med talen i numbers_keep
  8. töm numbers_keep
  9. Upprepa 4 - 8 så länge som det finns tal kvar i numbers. Kan flyttas till mellan punkt 3 och 4.

Några körningar visas nedan

Koda en punkt i taget.

Testa sedan att det fungerar så långt. Använd körningarna nedan för att se vad de olika variablerna bör innehålla för värden.

Börja med talen 2, 3, 4, 5

1. tom lista som heter primes
primes: []
2. lista numbers med tal 2, 3, 4, 5, ... valfritt slut
numbers: [2, 3, 4]
3. lista numbers_keep med tal som ska behållas, tom vid start
numbers_keep: []
------------------
--- VARV 1 ---
4. flytta första talet i numbers till listan primes
primes: [2]
5. spara i variabeln prime också
prime: 2
6. kopiera alla tal i numbers som INTE är jämt delbara med prime
numbers:  [3, 4]
numbers_keep: [3]
7. ersätt talen i numbers med talen i numbers_keep
numbers:  [3]
8. töm numbers_keep
numbers_keep: []
9. åter till 4 om numbers innehåller tal finns kvar i numbers
------------------
--- VARV 2 ---
4. flytta första talet i numbers till listan primes
primes: [2, 3]
5. spara i variabeln prime också
prime: 3
6. kopiera alla tal i numbers som INTE är jämt delbara med prime
numbers:  []
numbers_keep: []
7. ersätt talen i numbers med talen i numbers_keep
numbers:  []
8. töm numbers_keep
numbers_keep: []
9. åter till 4 om numbers innehåller tal finns kvar i numbers
<--- KLART --->
primes: [2, 3]

Börjar med talen 2, 3, 4, 5, 6, 7, 8, 9

1. tom lista som heter primes
primes: []
2. lista numbers med tal 2, 3, 4, 5, ... valfritt slut
numbers: [2, 3, 4, 5, 6, 7, 8, 9]
3. lista numbers_keep med tal som ska behållas, tom vid start
numbers_keep: []
------------------
--- VARV 1 ---
4. flytta första talet i numbers till listan primes
primes: [2]
5. spara i variabeln prime också
prime: 2
6. kopiera alla tal i numbers som INTE är jämt delbara med prime
numbers:  [3, 4, 5, 6, 7, 8, 9]
numbers_keep: [3, 5, 7, 9]
7. ersätt talen i numbers med talen i numbers_keep
numbers:  [3, 5, 7, 9]
8. töm numbers_keep
numbers_keep: []
9. åter till 4 om numbers innehåller tal finns kvar i numbers
------------------
--- VARV 2 ---
4. flytta första talet i numbers till listan primes
primes: [2, 3]
5. spara i variabeln prime också
prime: 3
6. kopiera alla tal i numbers som INTE är jämt delbara med prime
numbers:  [5, 7, 9]
numbers_keep: [5, 7]
7. ersätt talen i numbers med talen i numbers_keep
numbers:  [5, 7]
8. töm numbers_keep
numbers_keep: []
9. åter till 4 om numbers innehåller tal finns kvar i numbers
------------------
--- VARV 3 ---
4. flytta första talet i numbers till listan primes
primes: [2, 3, 5]
5. spara i variabeln prime också
prime: 5
6. kopiera alla tal i numbers som INTE är jämt delbara med prime
numbers:  [7]
numbers_keep: [7]
7. ersätt talen i numbers med talen i numbers_keep
numbers:  [7]
8. töm numbers_keep
numbers_keep: []
9. åter till 4 om numbers innehåller tal finns kvar i numbers
------------------
--- VARV 4 ---
4. flytta första talet i numbers till listan primes
primes: [2, 3, 5, 7]
5. spara i variabeln prime också
prime: 7
6. kopiera alla tal i numbers som INTE är jämt delbara med prime
numbers:  []
numbers_keep: []
7. ersätt talen i numbers med talen i numbers_keep
numbers:  []
8. töm numbers_keep
numbers_keep: []
9. åter till 4 om numbers innehåller tal finns kvar i numbers
<--- KLART --->
primes: [2, 3, 5, 7]