Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Deux nombres amis

  1. dalida1111

    Date d'inscription
    mars 2011
    Messages
    287

    Deux nombres amis

    salut j ai besoin de votre aide svplé
    je veux ecrire un programme qui vérifie si deux nombres sont amis

    A est ami de B si la somme des diviseurs de A est égal à B.
    exemple: prenant 220 ET 284

    Code:
    Code HTML:
          
                    scanf("%d %d",&A,&B);//soit A et B deux nombres
    
                       for(i=1;i<A;i++)//pour i allant de 1 à A-1
    
                       {
                           if(A %i==0)//  si le reste de la division de A par i est egal à zero 
                           
                           sdiv=sdiv+i;
                       
                       }
    
                      for (i=0;i<B;i++)
                      {
    
                          if(B%2==0)
    
                          smdiv=smdiv+i;
    
                        }
    
                       if (sdiv==B || smdiv==A)
                            //si la somme des diviseurs de A est égal à B et la somme des diviseurs de B est égal à A                                                           
    
                       printf("amis");//si c vrai alors A et B sont amis
    
                       else//sinon
    
                       printf("ne sont pas amis ");//A et B ne sont pas amis
    
                       getch();
                       }//fin du programme


    merci de m avoir aidée , à vrai dire je ne trouve pas mon erreur mais j arrive pas à l executé


    Dernière modification par dalida1111 ; 11/12/2011 à 13h50.
     


    • Publicité



  2. dalida1111

    Date d'inscription
    mars 2011
    Messages
    287

    Re : Deux nombres amis

    PS : au lieu de (B%2==0) je dois ecrire (B%i==0)
     

  3. photon57

    Date d'inscription
    septembre 2011
    Messages
    2 055

    Re : Deux nombres amis

    Hello,

    pas la peine de mettre des balises HTML à l'intérieur des balises CODE. Par contre poster tout le code peut-être intéressant, si c'est un peu long, tu entourer le bloc CODE avec des balises SPOILER.
    Par exemple (pour voir comment j'ai fait clique sur Répondre avec citation)

     Cliquez pour afficher


    Une remarque générale : pour trouver les erreurs dans un code, il est parfois plus simple (en tout cas beaucoup plus rapide et utile) de débuguer ton code grâce à un debugueur. La maîtrise d'un débugueur est indispensable quand tu programmes.

    Une remarque sur la définition : deux nombres A et B sont dits amis ssi la somme des diviseurs propres de A vaut B et la somme des diviseurs propres de B vaut A.
    Comment fait-on un et sur deux conditionnelles en C ?
    Attention au test de divisibilité.

    Une remarque sur l'algorithme utilisé : ok l'idée est là. Mais, je t'ai déjà dit dans d'autres fils que tu peux optimiser un peu ...

    Un nombre A n'a aucun diviseur dans ]A/2;A[
    En fait une boucle optimale ne testerait que les entiers entre 1 et A1/2... comme une remarque que j'avais pu te faire dans un fil sur les nombres premiers

    Si la somme des diviseurs propres de A ne vaut pas B, A et B ne peuvent être amis donc ce n'est pas la peine de calculer la somme des diviseurs propres de B.

    Il est préférable d'utiliser des variables dont le nom est explicite, tu peux vite confondre sdiv et smdiv (sans compter les fautes de frappe difficiles à retrouver sans debugueur). Il aurait été judicieux de les nommer smDiviseursA et smDiviseursB ... beaucoup plus lisible et compréhensible.
    Dernière modification par photon57 ; 11/12/2011 à 14h23.
     

  4. photon57

    Date d'inscription
    septembre 2011
    Messages
    2 055

    Re : Deux nombres amis

    Citation Envoyé par dalida1111 Voir le message
    PS : au lieu de (B%2==0) je dois ecrire (B%i==0)
    Ce n'est pas la seule erreur.
     

  5. dalida1111

    Date d'inscription
    mars 2011
    Messages
    287

    Re : Deux nombres amis

    Merci pour la réponse et excuse moi pour le retard car je vis depuis 4 jours sans electricité et sans connexion ,
    bref, j'ai modifié mon programme mais lorque je le teste en C ca donne tjr le meme résultats ( que" les deux nombre ne sont pas amis ")

     Cliquez pour afficher


    Merci
     


    • Publicité



  6. photon57

    Date d'inscription
    septembre 2011
    Messages
    2 055

    Re : Deux nombres amis

    Hello,

    indenter le code le rend plus lisible ...

    plusieurs remarques :

    * essaye d'afficher la valeur de sdiviseurA après ta boucle, est-elle correcte ?
    * il te manque la moitié du code ... une fois la remarque précédente prise en compte, essaye, par exemple avec A=8 (somme des div = 1+2+4=7) et B=7 (somme des div=1)

    * écrire une fonction int SommeDiviseurs(int n) qui te renvoie la somme des diviseurs du paramètre n te simplifierait la vie ...
     

  7. dalida1111

    Date d'inscription
    mars 2011
    Messages
    287

    Re : Deux nombres amis

    Merci c fait j 'ai pu l excecuter
    j 'ai initialisé sdiviseurA par 0 et j ai affiché la somme des diviseurs de A aprés la boucle for ( pour i allant de 1 à <A) ...si on prend A=220 et B=284 , la somme des diviseurs de A vaut 284 .ca donne ds nombres amis
    Dernière modification par dalida1111 ; 16/12/2011 à 01h27.
     


    • Publicité




Poursuivez votre recherche :




Sur le même thème :




 

Discussions similaires

  1. comparaison de deux nombres
    Par j-lo dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 15/05/2010, 14h50
  2. Comparer deux nombres
    Par jeremymaths dans le forum Mathématiques du collège et du lycée
    Réponses: 12
    Dernier message: 01/01/2010, 10h27
  3. Comparer deux nombres
    Par pc..maths dans le forum Mathématiques du collège et du lycée
    Réponses: 6
    Dernier message: 09/11/2008, 18h13
  4. Pgcd de deux nombres entiers
    Par liline12 dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 27/12/2006, 21h07
  5. Somme de deux nombres cardinaux
    Par dogalay dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 27/12/2006, 11h38