Nbre premier.
Résolu/Fermé
Sabetodo
Messages postés
120
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
18 août 2010
-
14 janv. 2009 à 20:22
Sabetodo Messages postés 120 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 18 août 2010 - 15 janv. 2009 à 09:51
Sabetodo Messages postés 120 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 18 août 2010 - 15 janv. 2009 à 09:51
A voir également:
- Nbre premier.
- Premier pro - Télécharger - Montage & Édition
- Premier bet loto 5/90 resultat du jour rdc ✓ - Forum Excel
- Premier opinion ✓ - Forum Virus
- Generer toutes les combinaisons du loto premier bet 5/90 et 4/52 . ✓ - Forum Excel
- Avoir les résultats du dernier tirage du loto :) - Forum Linux / Unix
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 janv. 2009 à 20:35
14 janv. 2009 à 20:35
Salut,
Voici quelques exemples pour t'inspirer
Vérifier si un nombre entier est un nombre premier en C
Voici quelques exemples pour t'inspirer
Vérifier si un nombre entier est un nombre premier en C
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
14 janv. 2009 à 20:49
14 janv. 2009 à 20:49
Salut,
Bizarre sur ma machine, cela me retourne 0 dans tous les cas. Et cela est normale puisque tu fais une boucle :
Pour cela, tu transformes la condition du for en : i<nombre égalité stricte.
Sinon, ton algorithme est bien compliqué. Tu n'as pas besoin d'incrémenter une variable cp. A la place du cp++, tu fais un return 0. Dans ce cas là, t'es assuré que tu as un diviseur et que donc le nombre n'est pas premier. Et à la fin de la boucle, tu fais un return 1.
Cdlt
Bizarre sur ma machine, cela me retourne 0 dans tous les cas. Et cela est normale puisque tu fais une boucle :
for(i=2;i<=nombre;i++). Donc à la dernière itération i vaudra nombre et nombre%i vaudra toujours 0. Ce qui incrémentera cp d'où le retour de 0.
Pour cela, tu transformes la condition du for en : i<nombre égalité stricte.
Sinon, ton algorithme est bien compliqué. Tu n'as pas besoin d'incrémenter une variable cp. A la place du cp++, tu fais un return 0. Dans ce cas là, t'es assuré que tu as un diviseur et que donc le nombre n'est pas premier. Et à la fin de la boucle, tu fais un return 1.
Cdlt
Sabetodo
Messages postés
120
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
18 août 2010
3
15 janv. 2009 à 09:51
15 janv. 2009 à 09:51
ok fiddy.merci pour ton aide.en fait mon probleme se trouvait a ce niveau de la boucle for comme tu l'a bien dit.ce devrait etre une egalite stricte.
Je vais reprendre mes annotations de ce matin...
Que d'erreurs !!! ;=))) mais, rassure-toi, on en a tous fait et malheureusement on en fait toujours.
Toutefois, le compilateur doit râler, et il faudrait au moins corriger ces erreurs-là:
- le 'main' déclaré 'int' n'a pas de valeur de retour,
- idem pour la fonction 'my_putchar',
Erreur de conception:
- le test 'if((nombre%i)==0)' lorsque 'i=nombre' sera toujours vrai, donc on aura toujours le même résultat quelquesoit le nombre.
Je m'arrête là.
Bon courage.
Que d'erreurs !!! ;=))) mais, rassure-toi, on en a tous fait et malheureusement on en fait toujours.
Toutefois, le compilateur doit râler, et il faudrait au moins corriger ces erreurs-là:
- le 'main' déclaré 'int' n'a pas de valeur de retour,
- idem pour la fonction 'my_putchar',
Erreur de conception:
- le test 'if((nombre%i)==0)' lorsque 'i=nombre' sera toujours vrai, donc on aura toujours le même résultat quelquesoit le nombre.
Je m'arrête là.
Bon courage.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 janv. 2009 à 21:00
14 janv. 2009 à 21:00
Re,
- le 'main' déclaré 'int' n'a pas de valeur de retour,
Il n'y a pas de return dans tas fonction.
- le 'main' déclaré 'int' n'a pas de valeur de retour,
int main(){ /* tes instructions */ ......................... return 0; }- idem pour la fonction 'my_putchar',
Il n'y a pas de return dans tas fonction.