public class Solution { /** * 返回两个区间内各取一个值相乘是p的倍数的个数 * @param a int整型 第一个区间的左边界 * @param b int整型 第一个区间的右边界 * @param c int整型 第二个区间的左边界 * @param d int整型 第二个区间的右边界 * @param p int整型 质数 * @return long长整型 */ public long numbers (int a, int b, int c, int d, int p) { // write code here long sum1=count(a,b,p); long sum2=count(c,d,p); return sum1*(d-c+1)+sum2*(b-a+1)-sum2*sum1;
} public long count(int begin,int end,int p){ return end/p-(long)Math.ceil(1.0*begin/p)+1; } }