IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Factorisation d'un nombre en nombre premier


Sujet :

Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 262
    Points : 157
    Points
    157
    Par défaut Factorisation d'un nombre en nombre premier
    voila j'ai essayé de résoudre ce problème pour un nombre:13195 et je dois afficher les nombres suivant 5, 7, 13 et 29 puisque 13195=5*7*13*29 sachant que ces nombres sont premiers,j’espère que j'ai bien clarifié
    le problème et dans la syntaxe je c pas pourquoi message genre while expected voila c'est tout attend votre réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    import java.io.* ;
    import java.util.* ;
    public class Nmbrepremier {
     
     
         public static  void main(String[] args) {
            int x= 13195;
            double n=3; 
            while (x != 1) do
           {
              n=3;    
              while (estpremier(n) && ((x%n) != 0)) do
              {
                 n = n+2;
              };           
              System.out.println(n);
              x = x/n;
     
          }        
     
        }   
     
          static boolean estpremier(double a){
             int i=2;
             boolean control=false;
             while((i<=Math.sqrt(a)) && (control==false)) do{
               if ( a % i == 0 )  control=true;  
             i+=1;
     
            }
     
            return control;
     
         }
     
     
    }

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par momedalhouma Voir le message
    le problème et dans la syntaxe je c pas pourquoi message genre while expected voila c'est tout attend votre réponse
    Ben je pense que t'as un problème dans la syntaxe alors, genre dans un while voilà c'est tout attend tes remerciements...

    Autrement dit, utilise la ponctuation, vire les quelques "spasmes" de sms et surtout sois plus précis, je me ferais un plaisir de te donner une réponse plus correcte (parce que là, je vois pas bien ce que je peux pour toi ^^)
    On apprend plus en répondant aux questions qu'en les posant.

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Il n'y a pas de :
    C'est :
    Il existe en effet :
    Une autre implémentation pour la résolution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    package demo;
    import java.io.* ;
    import java.util.* ;
    public class Finder {
     
     
         public static  void main(String[] args) {
        	 Finder f =new Finder();
        	 f.findAll(64);
        	 System.out.println(f.result);
        }
    	private List<Integer> result = new ArrayList<Integer>();
    	private int searched;
    	private int produit=1;
     
         private int findNext(){
        	 int current = 1;
        	 while(current <= (this.searched/this.produit)){
        		 current++;
        		 if( ((this.searched/this.produit)%current) == 0){
        			 this.produit*=current;
        			 return current;
        		 }
        	 }
        	 return current;
         }
         public List<Integer> findAll(int number){
        	 this.searched = number ;
        	 this.produit =1;
        	 while(this.needMore()){
    	    	 this.result.add(this.findNext());
        	 }
        	 return this.result ;
         }
    	private boolean needMore() {
    		return produit!=searched;
    	}
     
    }
    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Dans ce genre de cas le message d'erreur est très important! Tu devrais le lire plus attentivement et essayer de le comprendre. De plus le retranscrire fidèlement sur le forum permet de bien plus facilement t'aider.

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 262
    Points : 157
    Points
    157
    Par défaut
    merci kolodz
    j'avais pas fait attention

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul du nombre de nombres à digits distincts entre deux bornes
    Par rawsrc dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 4
    Dernier message: 18/05/2011, 09h49
  2. [Débutant] Nombre min, nombre max
    Par woodix dans le forum Pascal
    Réponses: 38
    Dernier message: 27/12/2010, 20h53
  3. Nombres de nombres premiers avec un certain nombre de chiffres
    Par piotrr dans le forum Mathématiques
    Réponses: 3
    Dernier message: 25/02/2008, 18h03
  4. [Dates] nombre entier --> nombre à virgule
    Par kendot dans le forum Langage
    Réponses: 3
    Dernier message: 06/02/2008, 11h53
  5. Factorisation en 2 nombres pas forcément premiers
    Par tsharlz dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/10/2006, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo