Tester si un nombre est premier

sb53rm Messages postés 8 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 25 janvier 2015 - 13 janv. 2015 à 00:51
sb53rm Messages postés 8 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 25 janvier 2015 - 25 janv. 2015 à 17:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/100871-tester-si-un-nombre-est-premier

cs_janhsh Messages postés 31 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 janvier 2015
24 janv. 2015 à 16:37
C'est la plus mauvaise méthode pour déterminer si un nombre est premier
cette méthode est O(n!)
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127 > cs_janhsh Messages postés 31 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 janvier 2015
25 janv. 2015 à 13:48
Bonjour,

@cs_janhsh : je t'ai déjà dit ce que je pensais de tes interventions ici.

@sb53rm : ne t'inquiètes pas ton algorithme n'est pas en O(n!), même un débutant ne pourrait pas atteindre une telle complexité par erreur.
Non, ton algorithme est bien en O(√n) comme tu le penses, ce qui serait pas mal sur le papier, à condition bien sûr que les résultats soient corrects, ce qui n'est pas le cas.

Voici les résultats que j'obtiens entre 0 et 10, il y a beaucoup d'erreurs :

 0 est non premier → vrai
1 est premier → faux
2 est non premier → faux
3 est non premier → faux
4 est non premier → vrai
5 est non premier → faux
6 est non premier → vrai
7 est non premier → faux
8 est non premier → vrai
9 est non premier → vrai
10 est non premier → vrai

Remarque : la rubrique codes sources du site est là pour présenter des codes qui apportent réellement quelque chose : Règles pour poster une nouvelle source.
Si ton but était que l'on te corrige ton code, il fallait plutôt le poster sur le forum.

En l'état cette source est vouée à disparaître, parce qu'elle est fausse mais aussi parce que ton code est très compliqué pour faire trois fois rien : ce code ne servira à personne.
Après si tu corriges tes erreurs et que tu nettoies le code, on verra pour la garder ou non.
sb53rm Messages postés 8 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 25 janvier 2015 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
Modifié par sb53rm le 25/01/2015 à 16:46
wee c'vrai merci de votre aide car je suis un debutant

if( (n == 2) || (n == 1) || (n == 3)) {
            c = 1;
        }
        if( (n%2 == 0)) {
            c = 2;
        }
        else {
            Racine = (int)Math.sqrt(n);
            for(int i=2; i<= Racine; i = i+2) {
               
                if( (n%i == 0)) {
                    c = 0;
                    multiple.add(i);
                    break;
                }else {
                compt++;
                }
                c = 1;
            }
        }

testé maintenant
voici le nouveau jar

http://www.gulfup.com/?lZFQr8

j'ai commancer le boucle depuis 2 est j'ajoute une condition sur 3
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127 > sb53rm Messages postés 8 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 25 janvier 2015
25 janv. 2015 à 17:00
Ce n'est pas à moi de tester, mais à toi...
Et si on regarde avec ton nouveau code, on a "1 premier" (faux), "2 non premier" (faux)...
sb53rm Messages postés 8 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 25 janvier 2015 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
25 janv. 2015 à 17:11
ok
sb53rm Messages postés 8 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 25 janvier 2015 > cs_janhsh Messages postés 31 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 janvier 2015
Modifié par sb53rm le 24/01/2015 à 23:40
ok merci bcp
quelle est le melleure methodes ??
car j'utilise la methode " girbale aritostani " on commance a 3 j'squa la racine de n .
Rejoignez-nous