Bonjour à tous,
Je viens ici car je me pose une petite question. J'ai du faire un petit programme simple, qui doit calculer le nombre de nombre premier contenu dans un chiffre donnée. Si l'utilisateur saisi 100, je dois afficher 25 ( 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97.)
J'ai un programme qui fonctionne, le voilà :
En output, j'ai bien 25 lorsque je saisi 100.
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 #include <iostream> #include <math.h> using namespace std; int main() { int a, f = 1, r = 0; cout << "merci de saisir un nombre : " <<endl; cin >> a; for(int j = a; j >= 2; j--){ for(int i = j; i >= 2; i--){ if(j % i == 0 && i != j){ f = 0; i = 0; } } if(f){ r++; } f = 1; } cout << r; }
J'ai fais une autre version (qui était celle de base), celle ci :
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 #include <iostream> #include <math.h> using namespace std; int main() { int a, f = 1, r = 0; cout << "merci de saisir un nombre : " <<endl; cin >> a; for(int j = a; j >= 2; j--){ for(int i = j; i >= 2; --i){ if(j % i == 0){ f = 0; i = 0; } } if(f){ r++; } f = 1; } cout << r; }
Ici, je n'ai pas mis la condition i != j , mais j'ai mis une pré incrémentation, mais impossible d'obtenir le bon résultat. Si vous avez une explication, ou si je me suis trompé !
Merci d'avance pour les réponses !
Partager