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

Algorithmes et structures de données Discussion :

Test de primalité


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Test de primalité
    bonjour
    je voudrais un solution pour cette exercice :
    ecrire un algorithme qui demande à l'utilisateur de saisir un nombre entier et qui détermine si ce nombre est premier ou pas .
    un nombre n'est pas premier s'il a au moins un diviseur plus petit ou égal à sa racine carrée ( 1 exclu ) .
    merci .

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Saches que te donner l'algorithme comme ça à brute pour point ne t'aidera pas et nous ne te le donnerons pas.

    En revanche nous pouvons t'aider à trouver la solution.

    Pour ton algorithme, il existe plusieurs méthodes. La plus simple et la moins efficace reste sans doute la méthode naïve en se servant de la définition.

    Ce qu'il faut faire, c'est tester si tous les nombres de 2 à n-1 divisent ou pas n. A l'aide de boucles et de modulo tu devrais t'en sortir.

    Ensuite, pour être plus efficaces, tu as quelques modifications à apporter à l'algorithme (ne tester que les nombres impairs après avoir testé la division par 2, ne tester que jusqu'à sqrt(n), ...)

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    A brûle-pourpoint
    Brusquement, par surprise

    Index
    En chair et en os
    Bonnes et mauvaises manières
    origine : France
    type : Expression

    A brûle-pourpointLe pourpoint était, du XIIIème au XVIIème siècle en Europe, la partie de l'habillement masculin qui couvrait le corps depuis le cou jusqu'au dessous de la ceinture. Les parties métalliques des armures étaient elle aussi attachées par-dessus un pourpoint, fait de cuir épais.

    "Tirer à brûle-pourpoint" signifiait tirer à bout portant. Le fait de faire feu alors que le canon de l'arme était directement en contact avec l'habit (le pourpoint) brûlait celui-ci. Il faut garder à l'esprit qu'à l'époque les armes fonctionnaient avec de la poudre directement intégrée dans la chambre de l'arme, et que de ce fait les risques de brûlure et d'explosion en contact direct avec la poudre étaient fréquents.

    Le sens d'origine (à bout portant) a évolué pour aboutir à une valeur plus temporelle. Aujourd'hui, c'est le caractère abrupt d'un acte qui peut ainsi être désigné. Le lien avec le sens d'origine (de très près) pourrait s'appuyer sur l'idée que lorsqu'on peut tirer sur quelqu'un à bout portant, c'est que la victime est entièrement prise à l'improviste et n'a pas vu le coup venir.

    De nos jours on utilise souvent l'expression pour mettre l'accent sur une intervention surprenante, à laquelle on n'a pas eu le temps de se préparer (poser une question, aborder un sujet à brûle pourpoint)
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Kio,
    Citation Envoyé par le marocain Voir le message
    bonjour
    je voudrais un solution pour cette exercice :
    ecrire un algorithme qui demande à l'utilisateur de saisir un nombre entier et qui détermine si ce nombre est premier ou pas .
    un nombre n'est pas premier s'il a au moins un diviseur plus petit ou égal à sa racine carrée ( 1 exclu ) .
    merci .
    La vraie définition est :

    Un nombre premier a 2 diviseurs, et 2 seulement.

    Celle que tu donnes, hélas si fréquemment utilisée, n'en est qu'un corollaire, qui en plus pousse à considérer que 1 n'est pas premier par convention, alors qu'il l'est par définition avec la vraie définition d'un premier.
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par droggo Voir le message
    Kio,

    La vraie définition est :

    Un nombre premier a 2 diviseurs, et 2 seulement.

    Celle que tu donnes, hélas si fréquemment utilisée, n'en est qu'un corollaire, qui en plus pousse à considérer que 1 n'est pas premier par convention, alors qu'il l'est par définition avec la vraie définition d'un premier.
    Non bien sûr, 1 n'est pas premier, il n'a qu'un seul diviseur.

    --
    Jedaï

  6. #6
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    La vraie définition est :
    Un nombre premier a 2 diviseurs, et 2 seulement.
    Oui, c'est ce qui traîne dans les 'vieux' bouquins de maths. Mais cette définition ne prend tout son sens que si on rajoute partout 'positif', bref si on se place dans l'ensemble des entiers naturels, et si on ne considère que les diviseurs potentiels positifs.
    Mais N n'est pas la bonne structure pour définir la notion de nombre 'premier', toute l'algèbre du 20-ième siècle tend à prouver que la structure 'profitable' (extensible) est celle d'anneau. Il faut donc se placer dans Z où -7 est un excellent candidat au titre de 'nombre premier' bien qu'ayant 4 diviseurs.
    De fait, la bonne définition de nombre premier est celle qui conduira par exemple à celle de polynôme 'irréductible' qui joue le même rôle dans les anneaux de polynômes.
    On s'intéresse donc à 'l 'idéal' engendré par un élément (pour faire simple l'ensemble de ses multiples), les éléments 'premiers' ou 'irreductibles', sont ceux qui ont un idéal maximal (non égal à l'anneau tout entier et non inclus dans tout autre idéal strictement plus grand).
    De ce point de vue les éléments inversibles sont sans intérêt car l'idéal qu'ils engendrent est l'anneau tout entier.
    Or il se trouve que dans Z les deux seuls éléments inversibles sont -1 et 1.
    Donc le fait que les éléments de N premiers puissent être caractérisée par la propriété citée par Droggo, est purement accidentelle (tout en étant parfaitement exacte). On ne peut pas la copier, par exemple pour les polynômes irréductibles, car les éléments inversibles sont tous les polynômes constants non nuls.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    @Zavonen: Je crois que ca dépasse légèrement la demande du PO.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonjour,
    Citation Envoyé par PRomu@ld Voir le message
    Ensuite, pour être plus efficaces, tu as quelques modifications à apporter à l'algorithme (ne tester que les nombres impairs après avoir testé la division par 2, ne tester que jusqu'à sqrt(n), ...)
    Et n'oublions pas le crible d'Ératosthène

    Cordialement,
    Sidahmed.

  9. #9
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    @Zavonen: Je crois que ca dépasse légèrement la demande du PO.
    Bon, le modérateur doit modérer !
    J'ai simplement voulu rectifier une définition, tant qu'à les rappeler autant qu'elles soient justes, et éclairer le point qui fait que l'on refuse à 1 la qualité de nombre premier, non par convention, non parce qu'il est unité, mais simplement parce qu'il est inversible.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    Bon, le modérateur doit modérer !
    J'ai simplement voulu rectifier une définition, tant qu'à les rappeler autant qu'elles soient justes, et éclairer le point qui fait que l'on refuse à 1 la qualité de nombre premier, non par convention, non parce qu'il est unité, mais simplement parce qu'il est inversible.
    Non, je ne vais pas moderer ta thèse de doctorat.

    C'est juste qu'a mon avis, le PO veut juste une boucle "for(i=2;i<=racine(n);i++)" avec un test de modulo "if ((n%i)==0) return NOTPRIME".
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Test de primalité Miller-Rabin
    Par bestmomo dans le forum Probabilités
    Réponses: 10
    Dernier message: 15/09/2010, 19h32
  2. Test de primalité.
    Par kaari kosaku dans le forum Mathématiques
    Réponses: 1
    Dernier message: 27/04/2009, 11h14
  3. [débutant] test de primalité
    Par grand_prophete dans le forum C
    Réponses: 14
    Dernier message: 08/10/2006, 12h32
  4. tests de primalité
    Par 123quatre dans le forum C
    Réponses: 2
    Dernier message: 20/12/2005, 09h55
  5. [Algo] Test de primalité
    Par Khorne dans le forum Mathématiques
    Réponses: 10
    Dernier message: 04/04/2004, 10h30

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