C++

kamilia -  
 kamilia -
Bonjour,
je cherche une fonction int premier(long n) qui retourne 1 si n est premier ,0 sinon
merci
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. gaby10 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   58
     
    Essai ceci voir,

    int cmpt=0 //Cette variable va compter le nombre de diviseur du nombre n

    int premier(long n)
    {
    int test=1;

    for (test=1;test++;test<=n) // le for va de 1 au nombre en parametre. Je restreint deja le champ d'action. Ce n'est qu'avec les nbres de cet intervalle kon va verifier si n est premier ou pas
    {
    if (fmod(n,test)==0) cmpt=cmpt+1; // Pout test=1,si le reste de la division de n par test donne 0 alors cmpt s'incremente

    test++;
    }
    // A la fin de For, on regarde le compteur cmpt, si sa valeur est different de 2 alors ce nombre n'est premier

    if(cmpt==2) return 1;
    else return 0;

    }

    J'espere que je ne me suis pas trompé quelque part
    Essai et tu nous donnes le resultat, j'ai pas fait c++ depuis
    0
  2. kamilia
     
    je fait la meme chose mai j'arive pas au resultat

    #include<stdio.h>
    #include<conio.h>
    int premier(int n,int compt)
    {int i;
    printf("n= ");
    scanf("%d",&n);
    i=2;
    while(i<=(n/2))
    {if(n%i==0)
    compt=1;
    else
    compt=0;
    }return compt;
    }
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    bool premier(int n)
    {
    for (int i=2;i*i<n;i++)
    if(n%i==0) return false;
    return true;
    }

    un nombre premier est un nombre qui n'est pas divisible par les autre nombres premier (sauf 1 et lui même)
    Là on fait une boucle de 2 à (en gros ) la racine de n, mais on pourrai en enlever certain. Par exemple si n n'est pas divisible par 2, il ne l'est pas par 4.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. kamilia
     
    slt gaby,voici la reponce d'exo

    #include<conio.h>
    #include<stdlib.h>
    int premier(long n)
    {
    int i=1,s;
    do
    {
    s=n%i;
    i++;
    }
    while(i<=n/2 && s!=0);
    if (i>n/2)
    return(1);
    else
    return(0);
    getch();
    }
    void decompose(long fact[],long n,int *taille)
    {
    int j,a;
    long i;
    for (i=n,j=0;j<*taille;i++,j++)
    {
    if (premier(i)==1)
    fact[j]=i;
    else
    j--;
    }
    for (a=0;a<*taille;a++)
    {
    printf ("fact[%ld]=%ld ",i,fact[i]);
    }
    getch();
    }
    main()
    {
    int k;
    long n,*t;
    printf ("entrer n");
    scanf ("%d",&n);
    printf ("entrer k");
    scanf ("%d",&k);
    t=(long*)malloc(k*sizeof(long));
    decompose(t,n,&k);
    getch();
    }
    0