Accueil > > > NOMBRE PREMIER OU PAS ? : VERIFICATION PAR CE PROGRAMME
NOMBRE PREMIER OU PAS ? : VERIFICATION PAR CE PROGRAMME
Information sur la source
Description
Ce programme passe par la méthode d'arithmetique étudiée en Terminale en Spécialité Maths, à savoir prendre la racine carré du nombre dont on veut verifier la primalité, et tester si le nombre originel n'est pas divisible par l'un des nombres premiers inferieurs a cette racine carré. Mais étant donné mon niveau assez faible j'ai ordonné a ce programme de tester tout les nombres inferieurs a cette racine carré sans exception. Ainsi ce programme test, et si le nombre n'est pas premier donne un diviseur du nombre. Voilà Enjoy ! Ssaboum.
Source
- #include <iostream.h>
- #include <stdlib.h>
- #include "stdio.h"
- #include "math.h"
- //Verification de nombres premiers
-
- float main(void)
- {
- float a,x,b,p;
- p=0;
- x=1;
- printf ("Entrez le nombre dont on va verifier la primalite :");
- scanf ("%f",&a);
- if (a<0) a=-a;
- else b=sqrt(a);
- printf ("il admet pour racine carre :%f\n",b);
- do
- {
- x=++x;
- //base du système:on cherche a savoir si le rapport a/x donne un entier
- //ce qui revient a chercher si a est divisible par x
- if (((a/x - floor(a/x))==0)&&(x!=a))
- {
- printf("ce nombre n'est pas premier et divisble par %f\n",x);
- p=++p;
- }
- }
- /* le problème est que maintenant(après avoir échangé le goto
- par une boucle conditionnelle (avec bcp bcp de mal !!!)
- le programme donne vraiment la liste de tous les diviseurs...
- qu'ils soient premier ou non, pour ne pas saturer le code, je l'ai laissé
- et puis au fond, c une fonctionnalité interressante,
- le problème est que ça écrit beaucoup à l'écran,
- quand le nombre à étudier est "grand" */
-
- while (x<=b);
- if (p==0) printf("Ce nombre est premier\n ");
- system("PAUSE");
- return 0;
- }
- //Fin du programme, n'hésitez pas a me contacter
- //si vous pensez pouvoir m'aider à ameliorer ce programme
#include <iostream.h>
#include <stdlib.h>
#include "stdio.h"
#include "math.h"
//Verification de nombres premiers
float main(void)
{
float a,x,b,p;
p=0;
x=1;
printf ("Entrez le nombre dont on va verifier la primalite :");
scanf ("%f",&a);
if (a<0) a=-a;
else b=sqrt(a);
printf ("il admet pour racine carre :%f\n",b);
do
{
x=++x;
//base du système:on cherche a savoir si le rapport a/x donne un entier
//ce qui revient a chercher si a est divisible par x
if (((a/x - floor(a/x))==0)&&(x!=a))
{
printf("ce nombre n'est pas premier et divisble par %f\n",x);
p=++p;
}
}
/* le problème est que maintenant(après avoir échangé le goto
par une boucle conditionnelle (avec bcp bcp de mal !!!)
le programme donne vraiment la liste de tous les diviseurs...
qu'ils soient premier ou non, pour ne pas saturer le code, je l'ai laissé
et puis au fond, c une fonctionnalité interressante,
le problème est que ça écrit beaucoup à l'écran,
quand le nombre à étudier est "grand" */
while (x<=b);
if (p==0) printf("Ce nombre est premier\n ");
system("PAUSE");
return 0;
}
//Fin du programme, n'hésitez pas a me contacter
//si vous pensez pouvoir m'aider à ameliorer ce programme
Conclusion
Nota Bene pour les fonctions utilisées : floor : arrondi à l'entier inferieur ainsi l'expression a/x - floor (blabla) equivaut a verifier si on a 1.2 - 1 = 0.2 ou si on a 1 - 1 = 0
A+
Historique
- 30 juillet 2004 11:01:23 :
- Bugs de la dernière version corrigés:
**-:Bug au niveau de petit nombre premier genre 2, où il affichait que 2 était divisible....par 2 et que donc il n'etait pas premier....facheux.
Le bug venait du fait que je pensais qu'étant donné que je partait des nombres inferieur a la racine carré du nombre, ce cas n'arriverait jamais. Commez quoi ...tt arrive.
La correction se fait maintenant en intégrant dans les condition que x different de a.
Bugs ou plutôt effet secondaire de cette version : vous avez maintenant la liste des diviseurs (premiers et non-premiers :!) du nombre dont vous voulez verifier la premialité... Bon par definition c'est pas trop génant si c un nombre premier mais sinon, s'il est grand ca peut vous remplir une page entière...
Si quelqu'un veut que je l'enleve ou mieux connaitrai : le CMN (Changement Minimum Nécessaire) qui me permettrait d'enlever ou de mettre à volonté cette fonctionnalité
Je suis preneur !
Bye
- 05 mai 2007 14:40:41 :
- correction de bugs de programmation
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
TRADAIONTRADAION par shootangel
Cliquez pour lire la suite par shootangel
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|