IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Programme détectant les nombres premiers


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut Programme détectant les nombres premiers
    Je sais que cela peut paraître simple, mais je n'arrive pas à me faire une idée complète à la solution de ce problème. Un utilisateur entre un message dans un text box et, avec mon application, je dois lui dire s'il s'agit d'un nombre premier, message qui sera affiché également dans un text box.

    Merci à l'avance
    frankthechamp

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Conversion string -> nombre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nb = int.Parse(ze_string);
    Tester si c'est un nombre premier, méthode la plus simple, on regarde si on trouve un nombre inférieur ou égal à racine de nb qui divise b
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public static bool IsPrime(int nb)
    		{
    			if(nb < 0)
    				return IsPrime(-nb);
    			else if(nb <= 3)
    				return true;
    			else
    			{
    				int sqrt_int = (int)Math.Sqrt(nb);
    				for(int i = 2;i<=sqrt_int;i++)
    				{
    					if(nb % i == 0)
    						return false;
    				}
     
    				return true;
    			}
    		}
    Reconversion en string :

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Tout va, sauf que je ne comprends pas cette partie, car je suis à mes tout débuts en C#:

    if(nb % i == 0)

    Je veux bien faire copier coller, mais je n'apprendrai pas --> Une petite explication S.V.P.

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    en C# '%' c'est le symbole du modulo. Parce que si a est divisible par b ça s'écrit a = 0 [b] ou a mod b = 0 (et donc en C#, a % b = 0).
    Et donc pour tester si un nombre est premier, il faut successivement regarder s'il admet des diviseurs inférieurs où égaux à sa racine carrée. Pourquoi la racine carrée ? .... je m'en souviens plus.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    C'est correct pour le modulo et mon problème est résolu, mais je m'interroge comme toi sur la raison de l'utilisation de la racine carrée. Si quelqu'un le sait, faites-le savoir!!!

    Merci encore
    frankthebest

  6. #6
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par frankthechamp Voir le message
    C'est correct pour le modulo et mon problème est résolu, mais je m'interroge comme toi sur la raison de l'utilisation de la racine carrée.
    Bah parce que si tu as a * b = c, alors t'as forcément a ou b qui est inférieur à racine de c.
    ಠ_ಠ

  7. #7
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Bah parce que si tu as a * b = c, alors t'as forcément a ou b qui est inférieur à racine de c.
    mouais, ça doit faire l'affaire ... en fait hier soir j'étais sur le point de me coucher et ça ne m'as pas sauté aux yeux, alors j'ai préféré dormir

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Ça me va comme explication --> Problème résolu!!!

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Alors jette toi sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 37
    Dernier message: 16/12/2013, 09h20
  2. script qui donne les nombres premiers
    Par islah dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2008, 21h06
  3. Programme détectant les erreurs de mémoire
    Par gids01 dans le forum MFC
    Réponses: 2
    Dernier message: 07/12/2005, 10h57
  4. Réponses: 24
    Dernier message: 27/09/2005, 21h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo