Bonjour,
Voici une routine qui m'a totalement scotché. Je sais bien que vous ne reconnaitrez pas le language mais ce n'est pas pour ca que vous ne comprendrez pas la logique. A propos de logique, pouvez vous m'expliquer comment fonctionne cette recherche extremement rapide de nombres premier ?
Code:; Define num.i = 10000 Define sqrnum.i = Sqr(num)+1 Dim PrimeFlags.b(num) Dim Primes.i(num) Define tim.i,count.i = 2 Define mill.i = ElapsedMilliseconds() ; For x = 3 To sqrnum Step 2 If PrimeFlags(x) = #False tim = x + x Repeat PrimeFlags(tim) = #True tim + x Until tim >= num EndIf Next ;Local count:Int Primes(1) = 2 For x = 3 To num Step 2 If PrimeFlags(x) = #False Primes(count) = x count+1 Debug x EndIf Next mill = ElapsedMilliseconds()-mill ; MessageRequester("",StrF(mill/1000.0) +" seconds "+ Str(count)+" primes found!")
-----