begin process at 2008 08 29 08:38:28
1 233 528 membres
67 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TEST SUR NOMBRES PREMIERS


Information sur la source

Description

Ce code permet à l'utilisateur de saisir un nombre et de savoir s'il s'agit d'un nombre premier.

3 classes composent ce code :

- un lanceur ne contenant qu'un "main"
- une classe gérant l'IHM
- une classe effectuant le traitement.

L'archive contient également un jar exécutable, si ça intéresse quelqu'un.

Merci pour vos commentaires !
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de DARKSIDIOUS le 17/07/2007 12:36:24 administrateur CS

    Mouais, c'est l'algorithme le plus basique (et le moins optimisé surtout) qu'on peut trouver pour tester un nombre premier, mais bon... ca a au moins le mérite de fonctionner à tout les coups.

  • signaler à un administrateur
    Commentaire de lrequena le 17/07/2007 14:00:31

    une des optimisations simples possibles serait :

    public boolean isPremier(int n)
    {
    boolean isPremier = true;

    if (n < 2)
    {
    isPremier = false;
    }
    else
    {
    for (int i = 2; i < Math.sqrt(n)+1; i++)
    {
    if (n != i && n % i == 0)
    {
    isPremier = false;

    }
    }
    }
    return isPremier;
    }

    Darksidious, dis moi si je me trompe ;)

  • signaler à un administrateur
    Commentaire de DARKSIDIOUS le 17/07/2007 14:09:38 administrateur CS

    non non, tu as tout à fait raison : ca sert à rien d'aller jusqu'à n / 2 : la racine de n est suffisante ce qui est bien plus efficace que n / 2 !

  • signaler à un administrateur
    Commentaire de atha2 le 26/07/2007 17:26:12

    voici une version un peu plus optimisée:

    public boolean isPremier(int n){
       if(n < 2){//si inferieur à 2, on retourn faux
          return false;
       }
       int i = 2;
    /
       while(i <= Math.sqrt(n)){//2 et 3 sont premier donc on ne rentre pas dans la boucle
          if(n % i == 0){si un diviseur on retourne faux(i != && i <i <= Math.sqrt(n)<n)
             return false;
          }
          i++;
       }
       return true;
    }

  • signaler à un administrateur
    Commentaire de theguitou le 28/07/2007 20:12:58

    while(i*i <= n)

    Et c'est encore plus optimisé ...

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS