Bonjour a tous !

J'apprends pour le moment la POO en C++, et je me suis lancé comme défi de faire un programme qui ne calculerait pas la racine, mais la simplifierait, pour ce, j'ai divisé mon programme en 2 parties :

1) on trouve les PPCM du nombre
2) on calculs les chiffres qui doivent etre a l'interieur ou a l'exterieur de la racine (ici le point virgule ";").

Seulement, voilà, mon programme fonctionne bien pour la premiere partie, mais pour la deuxieme, il met tous les chiffres a l'exterieur de la racine,...
je vous met mon programme :

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <cmath>
 
using namespace std;
 
 int nombreX (0); //initialisation de la valeur de la racine
 
int main()
{
    cout << "Choississez la valeur de la racine : ";
    cin >> nombreX;
    int nombreW (0);
    if (nombreX == 4 || 9 || 16 || 25 || 36 || 49 || 64 || 81 || 100 || 121 || 144 || 169 || 196 || 225 || 256 || 289 || 324 || 361 || 400 || 441 || 484 || 529)
                 {
                     nombreW = sqrt(nombreX);
                     cout << nombreW << " il s'agit d'un carre parfait, ne vous preoccupez pas du reste." << endl;
                 }
    int nombreA(0);
    for (nombreA = 150; nombreA > 2; nombreA--)
 
          {
               int nombreY (nombreX%nombreA); //nombre Y egal soit 1 soit 0
               int nombreZ (nombreX/nombreA);
 
                 if (nombreY == 0)
                     {
                        cout << nombreA << " X " << nombreZ << endl;
                     }
                 else
                 {
                     cout << "erreur" << endl;
                 }
          }
 
    int nombreB (0);
    int nombreC (0);
    int nombreGauche1 (1);
    int nombreGauche2 (0);
    int nombreDroite1 (0);
    int nombreDroite2 (0);
 
    cout << "Indiquer le premier facteur PPCM" << endl;
    cin >> nombreB;
    cout << "Indiquer le deuxieme facteur PPCM" << endl;
    cin >> nombreC;
 
    if (nombreB == 4 || 9 || 16 || 25 || 36 || 49 || 64 || 81 || 100 || 121 || 144 || 169 || 196 || 225 || 256 || 289 || 324 || 361 || 400 || 441 || 484 || 529)
    {
        nombreGauche1 = sqrt(nombreB);
    }
    else
    {
        nombreDroite1 = nombreB;
    }
 
    if (nombreC == 4 || 9 || 16 || 25 || 36 || 49 || 64 || 81 || 100 || 121 || 144 || 169 || 196 || 225 || 256 || 289 || 324 || 361 || 400 || 441 || 484 || 529)
    {
        nombreGauche2 = sqrt(nombreC);
    }
    else
    {
        nombreDroite2 = nombreC;
    }
 
    cout << nombreGauche1 << " X " << nombreGauche2 << ";" << nombreDroite1 << " X " << nombreDroite2 << endl;
 
 
    return 0;
 
}
Il n'est pas tres beau et concis, mais soyez indulgent, c'est mon premier programme aussi dur tout seul
Si vous savez comment corriger ce probleme, comment ameliorer la beauté de mon programme ou comment proceder pour le transformer en POO, je suis a l'écoute !

Merci d'avance,