TopCoder SRM 394 Level2 1000 http://www.topcoder.com/stat?c=problem_statement&pm=8547&rd=11128 求a到a+b所有的数的cool divider数量之和,即本身能被整除但是其n次方不能被整除 由于数据高达10^7,暴力没有可能,将乘法转化为加法也仍然计算量太大 答案给出了很好的解决方法 对于a到a+b中间的数,可以整除i的个数为(a+b)/i - (a-1)/i,以上均为int的除法操作 这样大大节省了计算量 唯一要注意的是如果b大于a,会将一部分值本身多计算一次 因此最后要做一点修整