Nombre premier ou pas ? : verification par ce programme

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 / Exemple :


#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+

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.