Nombres premiers, listes, nombres premiers jumeaux, conjecture de goldbach

Description

Ce programme est un ensemble de fonctions qui ont un rapport avec les nombres premiers:
-La première est une fonction booleenne qui dit si un nombre est premier ou non
-La deuxième liste les nombres premiers entre a et b
-La troisième liste les nombres premiers jumeaux
-La dernière test la conjecture de Goldbach

Source / Exemple :


#Codé par Marion

def premier(a):
    #Fonction booleenne qui dit si un nombre est premier ou non
    r=int(a**(0.5))+1
    resultat=True
    i=1
    
    if a==1:
        resultat=False
        #un nombre premier est un nombre qui admet exactement deux
        #diviseurs, 1 n'est pas premier
    elif a%2==0 and a<>2:
        resultat=False
        #Si 2 ne divise pas a alors aucun nombre pair ne divisera a

    
    while 2*i+1 <r+1 and resultat==True :
        #Si un nombre a n'est pas premier alors:
        #il existe un diviseur de a dans [2,racine(a)]
        
        if a%(2*i+1)==0:
            #On ne teste que pour les impairs cf plus haut
            resultat=False
            
        i=i+1
    return(resultat)

def liste(a,b):
    #Fait la liste des nombres premiers entre a et b
    L=[]
    #L sera la sortie
    
    for i in range(a,b+1):
        if premier(i)==True:
            #On utilise la fonction précedente
            L.append(i)
    return(L)

        

def jumeaux(a,b):
    #Fait la liste des nombrs premiers jumeaux
    #ie n et n+2 sont premiers
    L=[]
    P=liste(a,b)
    #on utilise la fonction précedente
    l=len(P)
    for i in range(0,len(P)-1):
        if P[i]==P[i+1]-2:
            L.append([P[i],P[i+1]])
    return L

def gol(n):
    #Test la conjecture de Goldbach
    #Tout nombre impair est la somme de 2 nombrees premiers
    s=1
    i=2
    while s==1 and i<n:
        if premier(i)==True:
            k=n-i
            if premier(k)==True:
                L=[i,k,i+k]
                s=0
        i=i+1
    return L

Codes Sources

A voir également

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.