Decomposition d'un nombre en java [Résolu]

pascalinette44 13 Messages postés samedi 3 mars 2007Date d'inscription 26 avril 2007 Dernière intervention - 26 avril 2007 à 08:55 - Dernière réponse : cs_ov3rdoze 414 Messages postés lundi 19 juillet 2004Date d'inscription 23 septembre 2014 Dernière intervention
- 27 avril 2007 à 09:08
Bonjour a tous , je fais actuellement un exercice dont le but est de  realiser un programme  permettant  de decomposer un nombre entier en base 10.Ni arrivant pas j'aurais voulu trouver un corrigé mais le site n'en propose pas(pffff).alors si quelqu'un sait comment si prendre ,ce serait tres gentil.
merci
Afficher la suite 

5 réponses

Répondre au sujet
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 26 avril 2007 à 15:24
0
Utile
Salut:

// Factorisation en base 10

int [] decompose (int n) {
   
// Note: "" n'est pas un espace, c'est du vide


    int length = new String ( "" + n + "").length ();
    int [] result = new int [length];
    int i = 0;
   
    while (n > 0) {
       result [i++] = n % 10;
       n /= 10;
    }

    return result;
}
Commenter la réponse de Ombitious_Developper
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 26 avril 2007 à 15:41
0
Utile
Salut,

concernant la récupération de length tu peux simplement faire

int length = ("" + n).length ();

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 26 avril 2007 à 15:55
0
Utile
Salut:




Je le sais, c'est une façon pour écrire.

De plus le compilateur va transformer chaque constante "..." en objet String.
Commenter la réponse de Ombitious_Developper
cs_ov3rdoze 414 Messages postés lundi 19 juillet 2004Date d'inscription 23 septembre 2014 Dernière intervention - 27 avril 2007 à 09:08
0
Utile
Salut

Pour moi factoriser en base 10 signifie récupérer l'ensemble des facteurs premiers du nombre à "décomposer" dans une base 10 :

20 ==> 2 * 2 * 5

Si c'est effectivement ça que tu souhaite faire, je ne vois pas d'autre solution que de tout tester : 
int fact = 2;  
while (n > 0) {
       if (! n % fact) {
             result [i++] = fact;
             n /= fact;
       } else do {
          fact++;
       } while (fact pas premier) //Je sais pas comment on fait en java
}

Chaque fois que tu incrémente fact il faut le faire jusqu'à tomber sur un nombre premier, sinon tu vas avoir dans ton tablau des nombres qui seront eux-même factorisable... Mais à toi de faire le test je suis pas un fan de Java...

Ceci est bien sûr la méthode la plus directe et certainement la moins éfficace (en terme de temps) mais ya énormement d'algorithmes qui traitent le sujet. Cherche sur google
Commenter la réponse de cs_ov3rdoze
cs_ov3rdoze 414 Messages postés lundi 19 juillet 2004Date d'inscription 23 septembre 2014 Dernière intervention - 26 avril 2007 à 09:49
-1
Utile
Bonjour

Qu'est-ce que tu entends par "décomposer"?
Commenter la réponse de cs_ov3rdoze

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.