Les nombres premiers version super algo

Description

Salut a tous !

Voilà encore un programme qui traîte des nombres premiers !!! Si je poste cette source, c'est parce que je n'ai trouvé aucune source sur ce site qui soit aussi rapide que celle-ci !
En effet la plupart traite les nombres premiers selon leurs propriétés ( divisibilité, décomposition en facteur... ) alors que cette source est la simple transposition du crible d'Eratosthène. Et comme il est beaucoup plus rapide de faire des additions que des divisions, le résultat ( en temps ) est assez impressionant pour seulement 10 lignes de code.

Hélas la source originale n'est pas de moi, c'est juste la transcription d'un programme trouvé dans un livre d'exos de C++ ( c'était la feinte ! ). Le principal c'est l'algo ! Dailleurs j'ai mis celui en C pour ceux que ca interresse ( 8 lignes ).
Soyez quand même indulgent, c'est un de mes premiers prog, il sort du placard !

@++

Source / Exemple :


'Algorithme
    'Incrémente prem jusqu'a la racine carré du nombre max
    Do While prem * prem < Text1
    
    'Premier multiple de prem
    i = 2 * prem
        
    'Tous les multiples de prem seront mis en true
        Do
            Tableau(i) = True
            i = i + prem
        Loop Until i > Text1
        
    'Va jusqu'au nombre premier suivant, le false suivant
        Do
            prem = prem + 1
        Loop Until Tableau(prem) = False
                
    Loop

Conclusion :


Compilé sur un P4 2.4Ghz avec 256 DDR : à peu près 11s pour les nombres premiers < 1 000 000
pour l'info il y en à 78 498
Le plus long, c'est l'affichage > 1 m

Il est à noter une différence de 3 secs entre le programme compilé et interprêté par VB, pour des additions ca fait pas mal !

ATTENTION : le tableau est limité, faut pas exagérer quand même !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.