✨ feat(eular_5.py):添加计时装饰器和Python内置lcm解决方案
📝 docs(eular_5.py):增加性能测试功能,比较两种实现方式的执行时间
This commit is contained in:
@@ -5,6 +5,18 @@ What is the smallest positive number that is evenly divisible by all of the numb
|
|||||||
|
|
||||||
import math
|
import math
|
||||||
import random
|
import random
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def timer(func):
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
start_time = time.time()
|
||||||
|
result = func(*args, **kwargs)
|
||||||
|
end_time = time.time()
|
||||||
|
print(f"{func.__name__} took {end_time - start_time:.6f} seconds")
|
||||||
|
return result
|
||||||
|
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
def is_probable_prime(n: int, trials: int = 10) -> bool:
|
def is_probable_prime(n: int, trials: int = 10) -> bool:
|
||||||
@@ -54,6 +66,7 @@ def primes_up_to(n: int) -> list[int]:
|
|||||||
return primes
|
return primes
|
||||||
|
|
||||||
|
|
||||||
|
@timer
|
||||||
def smallest_multiple(n: int) -> int:
|
def smallest_multiple(n: int) -> int:
|
||||||
result = 1
|
result = 1
|
||||||
for p in primes_up_to(n):
|
for p in primes_up_to(n):
|
||||||
@@ -63,5 +76,12 @@ def smallest_multiple(n: int) -> int:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
@timer
|
||||||
|
def python_solution(n: int) -> int:
|
||||||
|
ls = list(range(1, n + 1))
|
||||||
|
return math.lcm(*ls)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
print(smallest_multiple(20))
|
print(smallest_multiple(20))
|
||||||
|
print(python_solution(20))
|
||||||
|
|||||||
Reference in New Issue
Block a user