97 lines
1.7 KiB
Python
97 lines
1.7 KiB
Python
|
import numpy as np
|
||
|
#EXERCICE 1
|
||
|
#1
|
||
|
def multiple(n):
|
||
|
lst=[]
|
||
|
i=1
|
||
|
while i*7 <= n:
|
||
|
lst.append(i*7)
|
||
|
i+=1
|
||
|
return(lst)
|
||
|
|
||
|
#2
|
||
|
def isprime(n):
|
||
|
s=int(n**.5)
|
||
|
t=True
|
||
|
i=2
|
||
|
while i <= s and t==True:
|
||
|
if n%i == 0:
|
||
|
t=False
|
||
|
i+=1
|
||
|
return(t)
|
||
|
|
||
|
#Cette fonction vérifie qu'aucun des entiers compris entre 2 et sqrt(n) ne sont pas des diviseurs de n.
|
||
|
#Si aucun de ces entiers n'est un diviseur de n, alors n est premier car sqrt(n) est un majorant de l'ensemble des diviseurs de n
|
||
|
|
||
|
#3
|
||
|
def premiers(n):
|
||
|
lst=[2]
|
||
|
i=3
|
||
|
while i <= n:
|
||
|
if isprime(i):
|
||
|
lst.append(i)
|
||
|
i+=2
|
||
|
return lst
|
||
|
|
||
|
#4
|
||
|
def npremiers(n):
|
||
|
lst=[2]
|
||
|
c=1
|
||
|
i=3
|
||
|
while c<n:
|
||
|
if isprime(i):
|
||
|
lst.append(i)
|
||
|
c+=1
|
||
|
i+=2
|
||
|
return lst
|
||
|
|
||
|
#5
|
||
|
def jumeaux(n):
|
||
|
lst=[]
|
||
|
for i in range(2,n):
|
||
|
if isprime(i) and isprime(i+2):
|
||
|
lst.append((i, i+2))
|
||
|
return lst
|
||
|
|
||
|
#6
|
||
|
def fermat():
|
||
|
k=0
|
||
|
while True:
|
||
|
if not isprime(2**(2**k) + 1):
|
||
|
return k
|
||
|
k+=1
|
||
|
|
||
|
#7
|
||
|
|
||
|
def repartition(n):
|
||
|
return len(premiers(n)) * np.log(n)/n
|
||
|
|
||
|
#On peut en conclure que sur les nombres qu'on a pu tester, la conjecture semble vraie.
|
||
|
|
||
|
#Exercice 2
|
||
|
#1
|
||
|
def u(n):
|
||
|
if n==0:
|
||
|
return 1
|
||
|
pre=u(n-1)
|
||
|
return 1/2*(pre + 2/pre)
|
||
|
|
||
|
premiers = lambda n: [u(n) for n in range(n)]
|
||
|
#2
|
||
|
premiers2 = lambda n: [u(n)**2 - 2 for n in range(n)]
|
||
|
# On pourrait. (ici, u(n)**2 tend vers 2, donc u(n) tend vers sqrt(2))
|
||
|
|
||
|
#3
|
||
|
def approx():
|
||
|
un=1
|
||
|
i=0
|
||
|
while abs(un**2 - 2) >= 2*1e-5:
|
||
|
un = 1/2*(un + 2/un)
|
||
|
i+=1
|
||
|
return i
|
||
|
#4
|
||
|
def uq(n, q):
|
||
|
if n==0:
|
||
|
return 1
|
||
|
pre=u(n-1)
|
||
|
return 1/q*(pre + q/pre)
|