Langage C, Nombre premier

Résolu/Fermé
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 9 avril 2011 à 19:29
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 10 avril 2011 à 03:03
Bonjour,

Un nombre est dit premier s'il est divisible par 1 et lui même. Exemple 3,5,7...

Ce programme est censé tester la primalité d'un nombre mais à l'exécution (je suis sous ubuntu), le curseur reviens juste à la ligne et rien ne se passe. Le voici:

#include<stdio.h>
int quotient,nbr,div,nb_div;
int nb_div=1;
main()
{
do
{
printf("Entrez la valeur (elle doit être positive) à tester: ");
scanf("%d", &nbr);
}
while(nbr<0);
for(div=2;div=nbr;div++)
{
if(nbr%div==0)
{
quotient=nbr/div;
if(quotient!=div)
nb_div=nb_div+2;
if(quotient==div)
nb_div=nb_div+1;
}

if(nbr%div!=0)
{
printf("%d n'est pas un diviseur de %d", div,nbr);
}
if(nb_div==2)
printf("%d est un nombre premier", nbr);
else
printf("%d n'est pas un nombre premier", nbr);
}


3 réponses

jordix Messages postés 57 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 1 octobre 2011 13
9 avril 2011 à 23:06
Je n'arrive pas a trouver l'algorithme qui permet de voir si c'est un nombre premier mais j'ai testé le tient et il ne marche pas. Il me fait une boucle infini avec marqué a chaque fois ( quelque soit la valeur) "n'est pas un nombre premier".
De plus il manque une accolade a la fin. Il faut que tu casse la boucle un jour si non sa marche pas et il faut que tu refasse l'algorithme.
5