使用乘法原理解答。用例通过率: 100.00% 运行时间: 28ms 占用内存: 6532KB。
#
# 返回两个区间内各取一个值相乘是p的倍数的个数
# @param a int整型 第一个区间的左边界
# @param b int整型 第一个区间的右边界
# @param c int整型 第二个区间的左边界
# @param d int整型 第二个区间的右边界
# @param p int整型 质数
# @return long长整型
#
class Solution:
    def numbers(self, a, b, c, d, p):
        # write code here
        if a == int(a/p)*p:
            x1 = int(a/p)
        else:
            x1 = int(a/p)+1
        x2 = int(b/p)
        x = x2-x1+1
        if c == int(c/p)*p:
            y1 = int(c/p)
        else:
            y1 = int(c/p)+1
        y2 = int(d/p)
        y = y2-y1+1
        return x*(d-c+1)+y*(b-a+1)-x*y