使用乘法原理解答。用例通过率: 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