1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #!/usr/bin/python3
# -*- coding: utf-8 -*-
from time import time
# Lance une fonction n fois et renvoie le temps global
def timereps(reps, func, *args):
start = time()
for i in range(reps): r=func(*args)
end = time()
return (r, end - start)
# def timereps
# Calcul par la racine selon l'algo donné par Tyrtamos
def racine(n):
if n < 2: return False
if (n%2) == 0: return n == 2
for k in range(3, int(n**0.5) + 1, 2):
if (n%k) == 0: return False
return True
# racine
# Calcul par dépassement du diviseur
def depassement(n):
if n in (2, 3, 5): return True
if n < 2 or (n%2) == 0: return False
k=3
while True:
#(q, r)=divmod(n, k)
if (n%k) == 0: return False
if (n//k) < k: return True
k+=2
# while
# depassement
if __name__ == "__main__":
test=1000000000193
for (l, f) in (
("racine", racine),
("depassement", depassement),
):
r=timereps(1000, f, test)
print(l, test, r)
# for
# if |
Partager