在 python 中检查一个数字是否可以被另一个数字整除的最快方法
Fastest way to check if a number is divisible by another in python
所以我一直在用 python 中的质数做一些事情,我目前正在使用这个
def isDivisible(number,divisor):
if number % divisor == 0:
return True
return False
检查一个数是否能被除数整除。
所以我想知道是否有更快的方法来做到这一点?
怎么样:
return (number % divisor == 0)
我怀疑是否有 "faster" 方法来检查它。而且看起来很简单。但是,我会将您的函数写为:
def isDivisible(number, divisor):
return number % divisor == 0
也许你可以使用 lambda
:
isDivisible = lambda x,y: x%y==0
isDivisible(4,2)
输出:
True
不快,但请注意 number % divisor == 0
已经 returns 一个布尔值。所以你可以简单地做:
is_divisible = lambda number, divisor: number % divisor == 0
定义您的函数。然而,这仍然是您使用的相同方法。可能会稍微快一点,我还没有测试过。
速度测试表明检查 not()
比 != 0
解决方案更快:
%%timeit
not(8 % 3)
# 19 ns ± 0.925 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%%timeit
8 % 3 != 0
# 27.1 ns ± 0.929 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
所以我一直在用 python 中的质数做一些事情,我目前正在使用这个
def isDivisible(number,divisor):
if number % divisor == 0:
return True
return False
检查一个数是否能被除数整除。 所以我想知道是否有更快的方法来做到这一点?
怎么样:
return (number % divisor == 0)
我怀疑是否有 "faster" 方法来检查它。而且看起来很简单。但是,我会将您的函数写为:
def isDivisible(number, divisor):
return number % divisor == 0
也许你可以使用 lambda
:
isDivisible = lambda x,y: x%y==0
isDivisible(4,2)
输出:
True
不快,但请注意 number % divisor == 0
已经 returns 一个布尔值。所以你可以简单地做:
is_divisible = lambda number, divisor: number % divisor == 0
定义您的函数。然而,这仍然是您使用的相同方法。可能会稍微快一点,我还没有测试过。
速度测试表明检查 not()
比 != 0
解决方案更快:
%%timeit
not(8 % 3)
# 19 ns ± 0.925 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%%timeit
8 % 3 != 0
# 27.1 ns ± 0.929 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)