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
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.