Crible Ératosthènes

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Ah oui petit bug ;).
Tu me forces à me surpasser :lol:.

Code : Tout sélectionner

Procedure RandomPrimeEuler(Maximum) ; Generates a random prime number using Euler demonstration (fast, but not sure) 
  If Maximum > 41
    Repeat 
      Number = Random(Int(Sqr(Maximum))) 
    Until Number <> 41
    NPrime = Number*Number-Number+41
  Else
    Dim Prime.l(12)
    Prime(0) = 2 : Prime(1) = 3 : Prime(2) = 5 : Prime(3) = 7 : Prime(4) = 11 : Prime(5) = 13
    Prime(6) = 17 : Prime(7) = 19 : Prime(8) = 23 : Prime(9) = 29 : Prime(10) = 31
    Prime(11) = 37 : Prime(12) = 41
    Repeat
      Get = Random(12)
      NPrime = Prime(Get)
    Until NPrime < Maximum
  EndIf
  ProcedureReturn NPrime 
EndProcedure
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Répondre