[c/c++] déterminer les diviseurs d'un nombre avec des informations supplémentaire

Contenu du snippet

Un jour j'avais besoin de déterminer les diviseurs d'un groupe de nombres et comme je suis un grand fainéant au lieu de tout calculer manuellement j'ai décider de faire un petit prog, qui me permettez par la même occasion de reprendre un peut la programmation car sa faisait un moment enfin bref voilà le code :

Source / Exemple :


#include <stdlib.h>
#include <stdio.h>
#include <limits.h>

using namespace std;

int main(){

    unsigned long nombre = 0;

    while ( true ) {

        fprintf ( stdout, "\n\nEntrer un nombre entier ( < %lu ) : ", LONG_MAX);

        unsigned long somme = 0;

        fflush ( stdin );
        scanf ( "%lu", &nombre );

        fprintf ( stdout, "Resultat :\n" );

        for ( unsigned long i = 1; i <= nombre; i++ ) {

            long double result = (long double)(nombre) / (long double)(i);

            if ( result == (long double) ( (unsigned long) ( result ) ) ) {

                if ( i == nombre || i > (long double) ( result ) )
                    break;

                fprintf ( stdout, "%lu x %lu\n", i,  (unsigned long) ( result ) );

                if ( i == (unsigned long) ( result )  )
                    somme += i;
                else
                    somme += i + (unsigned long) ( result );

            }

        }

        if ( somme >= nombre )
            somme -= nombre;

        fprintf ( stdout, "\nLa somme des diviseurs sans le nombre lui meme est : %lu", somme );

        if ( somme == nombre )
            fprintf ( stdout, "\nC'est un nombre parfait !" );
        if ( somme == 1 )
            fprintf ( stdout, "\nC'est un nombre primaire !" );

    }

    return 0;

}

A voir également

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.