• Programme pour calculer le rang d'un entier sociable [JAVA]

    Salut tout le monde, j'ai dus développer ce programme pour un DM de spé maths, je le mets à disposition dans le cas où vous en auriez besoin (avec une chance de 0,0000001%). 

    Programme pour calculer le rang d'un entier sociable [JAVA]

    Programme pour calculer le rang d'un entier sociable [JAVA]

    Voici le résultat de son exécution:

    Programme pour calculer le rang d'un entier sociable [JAVA]

    Code à copier coller:

    package package0;

     

    import java.util.ArrayList;

    import java.util.Scanner;

     

    public class Main {

     

     public static int somme=0;

     public static int nombrePrecedent;

     public static int ordre=0;

     public static ArrayList <Integer> tableauDiv  = new ArrayList<>();

     

     public static void main(String[] args) {

     

     Scanner scanner= new Scanner(System.in);

     System.out.println("Entrez la valeur de n:");

     double n = scanner.nextInt();

     

     calculDiviseursNombre(n);

     nombrePrecedent=(int)n;

     ordre=0;

     

     while (somme != n) {

     somme=0;

     for(int k=0; k < tableauDiv.size(); k++) {

     if(tableauDiv.get(k) != nombrePrecedent) {

     somme+=tableauDiv.get(k);

     

     }

     } nombrePrecedent= somme; System.out.println(somme); tableauDiv.clear(); calculDiviseursNombre(somme); ordre++;

     

     

     System.out.println("Ordre="+ordre);

     

     

     public static void calculDiviseursNombre(double n) {

     int positionDansLeTableau=0;

     

     //nous faisons une boucle allant de 2 à la racine carrée de n

     for(int k=1; k < n; k++) {

     

     if(n%k == 0) {

     tableauDiv.add(positionDansLeTableau, (int)(n/k));

     positionDansLeTableau++;

     }

     }

     tableauDiv.add(positionDansLeTableau, 1);

     }

     

    }

     


  • Commentaires

    1
    Samedi 7 Octobre à 17:53

    Kesako ? A quoi ça peut servir ?

      • Samedi 7 Octobre à 19:55

        Salut, 

        Très bonne question x'D! J'ai dus développer ce programme pour un devoir de spé-maths il permet de gagner un temps considérable dans le calcul du rang d'un entier sociable, comme je l'ai dis ça risque pas de servir à grand monde mais on sait jamais x'D

      • Dimanche 8 Octobre à 12:03

        Mais qu'est-ce que le rang d'un entier sociable ?

    2
    Dimanche 8 Octobre à 21:18

    Tu prends un entier par exemple N=6; tu fais la somme de ses diviseurs autre que 6 donc S1= 1+2+3 = 6 Au rang 1 (c'est-à-dire pour la première somme) on obtient que S1=N; donc on conclut que 6 est un entier sociable d'ordre 1.

    Mais pour certains entiers ça ne fonctionne pas du premier coup; du coup tu dois faire pareil que pour N pour les sommes c'est-à-dire que tu fais la somme des diviseurs de la somme autre que le résultat précédent. Je sais pas si j'ai été clair :/ 

    Ainsi pour N= 8

    S1= 1+2+4 = 7

    S2= 1 (somme des diviseurs de 7 autre que 7 ect..)

    On notera qu'ici 7 n'est pas un entier sociable puisque si on continue on arrivera pas à Sn = N :D

    3
    Lundi 9 Octobre à 12:09
    C'est plus clair, mais je comprends pourquoi je ne me suis pas spécialisé dans les mathématiques !


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :