3/5 (7 avis)
Vue 26 754 fois - Téléchargée 612 fois
#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
21 juin 2016 à 23:25
http://sametmax.com/operateur-splat-ou-etoile-en-python/
21 juin 2016 à 23:16
Exemple les doubles ** en Ligne 5 : r=int(a**(0.5))+1
Je ne comprends pas cette ligne et de plus elle lève une exception.
29 juil. 2010 à 17:19
Merci pour tes commentaires, tes remarques sont bonnes.
C'est un code qui a été fait par Marion qui n'a pas de compte sur codes sources et comme il faut rendre à Cesar ce qui est à Ceasar...
28 juil. 2010 à 14:41
"if resultat==True on peut mettre if resultat" => Vrai et archi vrai
"mettre un while i<r et apres i=i+1 ce n'est pas très joli" => Au contraire c'est la méthode classique de base = normal voir joli
"faire un break avec sys.exit" => ou faire un break avec un break ça marche aussi et c'est jolie contrairement a ce que les vieux puristes pensent
Preuve : En assembleur (plus bas niveau raisonnable) il est possible de faire un pause dans un programme et de quitter une boucle d'où il n'y a techniquement aucun problème à mettre un break c'est de base dans les micros.
"sys.exit, pas très joli..." => effectivement ça quitte le programme ...
Voila joli, efficace, simple, et non bugé => je suis fan :D
PS : C'est Marion ou Julien je suis perdu ....
____
Aéra
18 nov. 2008 à 00:02
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.