Site internet

Bonjour,

Existe-t-il un site internet qui, un entier naturel $n$ étant donné, répertorie tous les entiers naturels premiers avec $n$ ?
[Ajout, après quelques réponses données : "...et inférieurs à $n$."]

Merci.

Réponses

  • Salut,
    Je suppose que tu te fixes une borne, sinon on va avoir des problèmes de stockage. Si tu te débrouilles en peu en algorithmie tu peux programmer ça. Je suis assez nul en algorithmie mais je te propose quand même quelque chose : tu fixes la borne, tu récupères la liste des nombres premiers inférieurs à ta borne (s’il faut avec une fonction isPrime? qui fait plus ou moins le crible d’Eratosthène), tu trouves les facteurs premiers de $n$ (à partir de ta liste, tu testes un par un), tu récupères tous les entiers non multiples de ces facteurs (en essayant d’optimiser un peu, si $p_1$ est le premier nombre premier dans la décomposition de $n$, tu vires tous ses multiples, et parmi les entiers qui restent tu vires les multiples de $p_2$ etc...) et si je n’ai pas dit de bétise le tour est joué.
  • @df
    Sneg ne voulait pas le comptage des ... mais la liste des ...
    Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. Benjamin Franklin
  • Oui mais je crois qu'il y a une possibilité d'obtenir cette liste sur Wolfram-Alpha également (voir sa page consacrée aux fonctions arithmétiques).
    De toute façon, il serait certainement plus instructif, comme le suggère @Boole et Bill, de se fabriquer un petit algorithme maison.
    ...
  • Salut Sneg,

    Tu veux faire ça :
    sage: Sneg = lambda n : [k for k in range(1,n) if gcd(n,k) == 1]
    sage: Sneg(10)
    [1, 3, 7, 9]
    sage: Sneg(2)
    [1]
    sage: Sneg(5)
    [1, 2, 3, 4]
    sage: Sneg(23)
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
    

    Il y a Sage qui fait ça, et peut être un peu plus !
  • Bonjour
    Des nombres premiers avec $n$ fixé, il y en a quand même une petite infinité.
    Tu es sûr que tu en veux toute la liste ?
    Cordialement,
    Rescassol.
  • Bonjour et merci à tous,

    Goléon a bien résumé ce que je cherche : un programme qui, un entier naturel $n$ étant donné, répertorie tous les entiers naturels premiers avec $n$ et inférieurs à $n$.

    Comme je suis nulle en programmation, j'espérais trouver ce genre de programme sur internet. J'ai commencé à chercher sur Wolfram Alpha mais je n'ai pas encore trouvé.
  • Salut,
    J’ai fait ça et je l’ai testé pour 200, ça marche plutôt bien.
    def euclid(a,b):
        r1 = a
        r2 = b
        r3 = 0
        while r2 != 0 :
            r3 = r1%r2
            r1 = r2
            r2 = r3
        return r1
        
    def arePrime(n,m) :
        if euclid(m,n) == 1:
            return True
        else :
            return False
            
    def integersPrimeTo(n):
        l = []
        for i in range(1,n) :
            if arePrime(n,i) == True :
                l.append(i)
        print(l)
        
    integersPrimeTo(200)
        
                
    
    
  • Note que ta fonction integersPrimeTo ne donne pas le bon résultat pour n=1.
    Sinon, on peut faire plus concis.
    def euclide(a,b):
       while b!=0:
           a, b = b, a%b
       return a
    
    def premiers(m,n):
        return euclide(m,n)==1
    
    def listePremiers(n):
        return [m for m in range(n+1) if euclide(m,n)==1]
    
  • Un grand merci à tous. C'est très gentil.
    J’ai enfin, à votre instigation, ouvert le pavé-mode-d'emploi de ma calculatrice TI-92 et ai écrit cet après-midi mon premier programme. Cela ne doit pas être très joli, mais ça fonctionne. Je ne résiste pas au plaisir de l'écrire ci-dessous :-) :
    : sneg(n)
    : Prgm
    : ClrIO
    : For i, 1, n
    : gcd(i,n)$\rightarrow$ a
    : If a=1 Then
    : Disp i
    : Pause
    : EndIf
    : EndFor
    : EndPrgm
    
    Les professionnels que vous êtes sûrement comprendront.
    Maintenant, si quelqu'un trouve un programme sur internet, je suis quand même preneuse.
    Encore grand merci.
  • Oui Math Coss bien vu. A ma décharge c’était mon premier code en Python, et je n’avais plus touché à la programmation depuis plus d’un an. Avant j’utilisais Ruby, Java et C++, en grand débutant pour essayer. D’ailleurs je poste ça là si ça vous intéresse, le Projet Euler, qui regroupe des petits défis de niveaux variés. Pour l’anecdote, j’avais commencé à programmer en Ruby pour comprendre le livre Cours D’Algèbre de Michel Demazure.
  • @Sneg tu peux utiliser des compilateurs python en ligne comme celui-ci.

    Colle ce code (librement inspiré de celui de Math Coss) dans l'éditeur en ligne :
    import math
    
    def listePremiers(n):
        return [m for m in range(n+1) if math.gcd(m,n)==1]
    
    print (listePremiers(7))
    

    remplace l'argument de "listePremiers" par le nombre que tu veux et clique sur "Run" en haut (bouton vert).
  • Merci, raoul.S, je vais essayer.
Connectez-vous ou Inscrivez-vous pour répondre.