Tester Les nombres premier

Soyez le premier à donner votre avis sur cette source.

Vue 3 784 fois - Téléchargée 861 fois

Description

Tester si un nombre est premier en java
avec une methode en divisent le nombre n de 3 a la racine de n
le plus grande nombre qui peut testé est (2^31 - 1)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_janhsh
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015
-
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
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
88 > cs_janhsh
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015
-
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
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
-
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
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
88 > sb53rm
Messages postés
8
Date d'inscription
lundi 3 mars 2014
Statut
Membre
Dernière intervention
25 janvier 2015
-
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
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
-
ok

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.