Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PARTIE ALIQUOTE


Information sur la source

Description

La partie aliquote d'un nombre est la somme de ses diviseurs propre.
Ce petit programme decompose un nombre en facteur premier,
cherche tout les diviseurs du nombre
puis calcul la partie aliquote du nombre
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de acx01b le 05/05/2008 10:24:25

salut
il y a des trucs un peu bizarres (au niveau algorithmique et clarté) dans ton code!

signaler à un administrateur
Commentaire de jimonnet le 05/05/2008 12:21:20

Ha bon...
lesquels ??

signaler à un administrateur
Commentaire de acx01b le 05/05/2008 21:21:38

la fonction diviseurs()

et s'il y a plus que 7 diviseurs ?

exemple 223092870 = 2*3*5*7*11*13*17*19*23

signaler à un administrateur
Commentaire de jimonnet le 06/05/2008 11:19:23

oui en effet
mais les cas sont tres rare
2 ou 3 inferieur a 10^10
or le logiciel ne depasse pas les 10^10
sans risque de bug

en fait ce bout de programme est le debut d'un autre
que je posterai plus tard car pas au point
et qui ne sera pas penalisé par ce souci

signaler à un administrateur
Commentaire de acx01b le 06/05/2008 13:29:15

salut

j'ai recodé ton programme comme je l'aurais fait, à toi de voir si c'est plus clair

#include <stdio.h>

#define MAX 10

void decomposer(int n, int *facteurs_premiers, int *puissance_facteurs_premiers, int *nombre_facteurs_premiers) {
    int nb = 0, d = 3;
    printf("%d = ",n);
    if (!(n%2)) {
        facteurs_premiers[0] = 2;
        puissance_facteurs_premiers[0] = 1;
        n /= 2;
        while(!(n%2)) {
            puissance_facteurs_premiers[0]++;
            n /= 2;
        }
        printf("2^%d * ", puissance_facteurs_premiers[0]);
        nb = 1;
    }
    while(n != 1) {
        if (!(n%d)) {
            facteurs_premiers[nb] = d;
            puissance_facteurs_premiers[nb] = 1;
            n /= d;
            while(!(n%d)) {
                puissance_facteurs_premiers[nb]++;
                n /= 2;
            }
            printf("%d^%d * ", d, puissance_facteurs_premiers[nb]);
            nb++;
        }
        d += 2;
    }
    *nombre_facteurs_premiers = nb;
}

void enumerer_diviseurs(int *facteurs_premiers, int *puissance_facteurs_premiers, int nombre_facteurs_premiers, int diviseur, int *somme_diviseurs) {
   int i;
   if (nombre_facteurs_premiers == 0) { *somme_diviseurs += diviseur; printf("%d\n", diviseur); return; }
   for (i = 0; i <= *puissance_facteurs_premiers; i++) {
      enumerer_diviseurs(facteurs_premiers+1,puissance_facteurs_premiers+1, nombre_facteurs_premiers-1,diviseur,somme_diviseurs);
      diviseur *= *facteurs_premiers;
   }
}

int main(int argc, char* argv[])
{
    int facteurs_premiers[MAX],puissance_facteurs_premiers[MAX],nombre_facteurs_premiers, Nombre, somme_diviseurs;
while(1)
{
printf("Veuillez entrer le nombre a decomposer \n");
scanf("%d",&Nombre);
printf("\n");
decomposer(Nombre,facteurs_premiers, puissance_facteurs_premiers, &nombre_facteurs_premiers);
somme_diviseurs = 0;
printf("\ndiviseurs:\n");
enumerer_diviseurs(facteurs_premiers, puissance_facteurs_premiers, nombre_facteurs_premiers, 1, &somme_diviseurs);
printf("\n\nLa partie Aliquote du nombre est %ld",somme_diviseurs);
printf("\n\n");
}
return 0;
}

signaler à un administrateur
Commentaire de acx01b le 06/05/2008 15:12:46

wops c'est

while(!(n%d)) {
     puissance_facteurs_premiers[nb]++;
     n /= d;
}

et pas

while(!(n%d)) {
     puissance_facteurs_premiers[nb]++;
     n /= 2;
}

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem un programme à creer [ par yoyo ] je dois creer un programme permettant d trouver les nombres premiers.l'algorithme est donné, et il utilise des tableaux dont les cases sont remplies p Qui sait l'algorithme pour calculer les racines? [ par TMT ] Aidez-moi! conversion de la partie fractionnaire en base n [ par Alucard ] J'ai vu qu'il y avait beaucoup d'algorithme de la partie entière (int) d'un nombre en n'importe quel base mais je voulais savoir si quelqu'un avait un les fonctions et le Math [ par djamine ] beh bonsoir les programmeurs j'ai une problemeje veux en utilisant la formuletan x=2t/1-(t au carré) avec t=tg x/2et le fait que si x est petit par ex Algorithme de mélange [ par C2S ] bonjour, j'aimerais connaitre un algorithme de mélange d'un tableau... (aléatoire) ... c'est pour simuler une fonction "mélanger" relative a un paquet aide sur l'algorithme AMR [ par semecurbep ] Votre texte iciVotre texte ICIVotre texte ICI map basic?????? [ par Sfoued2003 ] slt tout le monde,je me demande si je peux faire implémenter un algorithme de Electre1 sur map basic, pour pouvoir l'utiliser aprés sur map info? et ç algorithme de gauss et decomposition LU [ par speedamine ] bonjour a tous.je voudrai avoir des algorithmes ,ecrits en borland pascal,suivants:methode de gauss ordinaire pour la resolution d'un systeme .la deco


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.