Langage C, Nombre premier

Résolu
keurdange Messages postés 720 Date d'inscription   Statut Membre Dernière intervention   -  
keurdange Messages postés 720 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   13
 
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