Obtenir toutes les nombres premiers dans une grande rangée au moins de 10 ms!

0/5 (25 avis)

Vue 7 772 fois - Téléchargée 295 fois

Description

salut
c'est comme vous avez compris du titre
c'est une implementation de l'algorithme sieve pour trouver les nombres premier.
détail dans le zip
merci pour votre visite!
:)

Source / Exemple :


#include<stdio.h>

    void sieve(int L,int U) {
      int i,j,d;
      d=U-L+1; 
      char flag[d];
      for (i=0;i<d;i++) flag[i]=1; /* par défaut tout est marqué comme premier */
      for (i=(L%2!=0);i<d;i+=2) flag[i]=0;
   /*on  élimine les multiples des nombres premiers de 3 jusqua sqrt(U) */
      for (i=3;i*i<=U;i+=2) {
         if (i>L && !flag[i-L]) 
            continue;
      /* On choisit le facteur qu'on va éliminer ses multiples */
         j=L/i*i; 
         if (j<L) j+=i;
         if (j==i) j+=i; /* il faut que j soit différent de i */
         j-=L; /* On décale les indices */
         for (;j<d;j+=i) flag[j]=0;
      }
      if (L<=1) flag[1-L]=0;
      if (L<=2) flag[2-L]=1;
      for (i=0;i<d;i++) 
         if (flag[i])
            printf("%d\n",L+i); 
   
   }
    int main(){
      int m,n;
      while(scanf("%d%d",&m,&n) == 2){
         sieve(m,n);
         printf("\n");
      } 
      return 0;
   }

Conclusion :


j'espère qu il sera utile pour vous!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2007 à 18:55
d=U-L+1;
char flag[d]; ça compile ???
cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 1
19 avril 2007 à 19:28
ça compile sans problème chez moi (avec GCC)
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2007 à 19:35
Ben ça s'arrange pas, tu n'as aucun controle du moment de la desalloc.
cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 1
19 avril 2007 à 19:54
excuse moi, je ne saisis pas ce que tu veux dire...
elkasimi2007 Messages postés 20 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 26 mai 2011
19 avril 2007 à 20:01
salut,
vraiment c'est formidable on ressent vraiment que le monde est vivant
avec 4 commentaires,merci pour votre soutien les gars.
je vous promis toujours mon meilleur possible!

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.