Algorithme - Nombre premier
Bonjour à tous,
Je m'essaye à l'algorithme sur algobox.
J'essaye de faire un algorithme qui me dit si le nombre que je rentre est premier ou non.
J'ai posé sur papier ce que je voulais faire , et la je l'ai rentré sur algobox. Je veux le faire en deux étapes.
La première étapes en utilisant la fonction entière (fonction floor dans algobox si je ne me trompe pas) " c'est brouillon et brute de caisse je sais haha"
Et ensuite de le faire moi même sans fonction entière.
Je rencontre cependant un problème dans la première étape, je veux comparer Y=3,5 et Z=3 qui sont différents. Mais lui le compare de manière identique . Ai je fait une erreur dans algobox?
petite précision ; il s'agit d'un programme simple , avec les résultats sur internet. Je ne cherche donc pas la réponse mais seulement une indication de mon/mes erreurs afin de faire mon programme tout seul.
par avance merci de vos réponses.
ps : je ne me suis pas présenté je vais de ce pas voir s'il y a une rubrique sur le forum (:
pss: Bonne année 2018 à tous (: (:
Je m'essaye à l'algorithme sur algobox.
J'essaye de faire un algorithme qui me dit si le nombre que je rentre est premier ou non.
J'ai posé sur papier ce que je voulais faire , et la je l'ai rentré sur algobox. Je veux le faire en deux étapes.
La première étapes en utilisant la fonction entière (fonction floor dans algobox si je ne me trompe pas) " c'est brouillon et brute de caisse je sais haha"
Et ensuite de le faire moi même sans fonction entière.
Je rencontre cependant un problème dans la première étape, je veux comparer Y=3,5 et Z=3 qui sont différents. Mais lui le compare de manière identique . Ai je fait une erreur dans algobox?
petite précision ; il s'agit d'un programme simple , avec les résultats sur internet. Je ne cherche donc pas la réponse mais seulement une indication de mon/mes erreurs afin de faire mon programme tout seul.
par avance merci de vos réponses.
ps : je ne me suis pas présenté je vais de ce pas voir s'il y a une rubrique sur le forum (:
pss: Bonne année 2018 à tous (: (:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'ai modifié mon algorithme , maintenant cela fonctionne . Maintenant je cherche à remplacer la fonction floor qui me donne la partie entière de N/i.
Pour la petite astuce sur algobox, quand on compare deux valeurs , il faut mettre " deux égales" == ....
@ Shah d'Ock La valeur de sortie de n/i est bien une valeur décimale (parfois). L'on voit sur mon screen de mon message précédant que Y retourne 3,5 pour n/i avec n=7 et i =2
J'ai donc voulu comparer cette valeur n/i avec uniquement sa partie entière.
Peut être pas la manière la plus affiné mais plus "brute de casse"
1 VARIABLES
2 //NOMBRE_RECHERCHE : Nombre que l'on veut savoir s'il est premier
3 NOMBRE_RECHERCHE EST_DU_TYPE NOMBRE
4 //i : Nombre permettant de compter de 2 à NOMBRE_RECHERCHE
5 i EST_DU_TYPE NOMBRE
6 //Y : Nombre prenant la valeur du calcul N/i
7 Y EST_DU_TYPE NOMBRE
8 //Z : Nombre entier du nombre Y
9 Z EST_DU_TYPE NOMBRE
10 //D : Permet de compter le nombre de division parfaite
11 D EST_DU_TYPE NOMBRE
12 DEBUT_ALGORITHME
13 AFFICHER "Ecrire un nombre entier N>2 pour savoir s'il est premier"
14 LIRE NOMBRE_RECHERCHE
15 // Initialisation
16 i PREND_LA_VALEUR 2
17 D PREND_LA_VALEUR 0
18 //Corps
19 POUR i ALLANT_DE 2 A NOMBRE_RECHERCHE
20 DEBUT_POUR
21 Y PREND_LA_VALEUR NOMBRE_RECHERCHE/i
22 Z PREND_LA_VALEUR floor(Y)
23 SI (Z==Y) ALORS
24 DEBUT_SI
25 D PREND_LA_VALEUR D+1
26 FIN_SI
27 SINON
28 DEBUT_SINON
29 D PREND_LA_VALEUR D
30 FIN_SINON
31 FIN_POUR
32 SI (D==1) ALORS
33 DEBUT_SI
34 AFFICHER " Le nombre est premier "
35 FIN_SI
36 SINON
37 DEBUT_SINON
38 AFFICHER " Le nombre N'est PAS premier "
39 FIN_SINON
40 FIN_ALGORITHME
Voici deux captures d'écrans pour montrer que mon algorithme fonctionne bien B-)
Si jamais vous avez des pistes pour l'améliorer et pour remplacer la fonction floor je suis preneur (: je me doute qu'il est loin d'être parfait
algobox n'est pas le plus adapté pour ce genre d'exercice (pas de fonctions) .
Mais si c'est imposé (donc pas python par exemple) alors un exemple :