Programme C avec pointeurs pour calculer les nombres parfait

Fermé
M - 10 sept. 2014 à 06:21
len3158 Messages postés 1 Date d'inscription mardi 16 septembre 2014 Statut Membre Dernière intervention 16 septembre 2014 - 16 sept. 2014 à 18:27
Bonjour,

Je dois ecrire un programme en c qui comporte une fonction de type void. Cette fonction doit permettre de calculer et de transmettre via pointeur la somme des diviseurs propres d'un entier donné.
N.B.
un nombre parfait est un nombre dont la valeur est égale à la somme de ses diviseurs propres

J'ai essaye un programme sans les pointeurs et voici ce que ca ma donne:

#include <stdio.h>

int somme2(int nbrparfait)
{
int somme=0;
int i;
for (i=1 ; i<nbrparfait ; i++)
{
if (nbrparfait%i==0) somme += i;
}
return somme;
}

int main()
{
char rep;
do
{
int nbrparfait;

printf("Entrer un nombre parfait:");
scanf("%d", &nbrparfait);

printf("\nLa somme des diviseurs du nombres parfait est %d.", somme2(nbrparfait));

printf("\nVoulez-vous continuer(o/n)?");
scanf(" %c",&rep);
}
while(rep == 'o');

system("pause");
return 0;
}

Merci d'avance!

2 réponses

Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 29
14 sept. 2014 à 16:47
Salut,

Tu devrais essayer un truc du genre :

#include <stdio.h>

void somme2(int nbrparfait, int * somme) {
int i;
  for (i=1 ; i<nbrparfait ; i++) {
    if (nbrparfait%i==0) somme += i;
  }
return;
}

int main() {
  char rep;
  do  {
     int nbrparfait, somme = 0;

    printf("Entrer un nombre parfait:");
    scanf("%d", &nbrparfait);

    printf("\nLa somme des diviseurs du nombres parfait est %d.", somme2(nbrparfait, &somme));

    printf("\nVoulez-vous continuer(o/n)?");
    scanf(" %c",&rep);
  }
while(rep == 'o');

system("pause");
return 0;
}


Pas certain que ca marche je l'ai pas testé ( et ca fait un petit moment que j'ai aps fais de C )
1
len3158 Messages postés 1 Date d'inscription mardi 16 septembre 2014 Statut Membre Dernière intervention 16 septembre 2014
16 sept. 2014 à 18:27
Salut!
Bizzare je me retrouve ayant le même problème. Ne seriez-vous pas en ITF1166 à l'Université de Montréal par hasard?
0