简体   繁体   中英

Fastest way to check if a number is divisible by another in python

So I've been doing something with primes in python, and I'm currently using this

def isDivisible(number,divisor):
    if number % divisor == 0:
        return True
    return False

to check if a number is divisible by the divisor. So I was wondering if there was a faster way to do this?

关于什么:

return (number % divisor == 0)

A speed test shows that checking not() is faster than a != 0 solution:

%%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)

I doubt there is a "faster" way of checking this. And it seems pretty simple. However, I would write your function as:

def isDivisible(number, divisor):
    return number % divisor == 0

maybe you can use lambda :

isDivisible = lambda x,y: x%y==0

isDivisible(4,2)

output:

True

Not faster, but note that number % divisor == 0 already returns a boolean. So you could simply do:

is_divisible = lambda number, divisor: number % divisor == 0

to define your function. This however is still the same method you are using. Could be marginally faster, I haven't tested.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM