如果你 WA on #3,5,8,9,11 且你的循环是这么写的:
for(i = 1;i <= n;i = j + 1)
{
if(k / i == 0)
{
break;
}
j = k / (k / i);
ans -= (k / i) * ((i + j) * (j - i + 1) / 2);
}
请把 k / (k / i) 改为 min(n,k / (k / i)),再在循环末尾加上如下代码:
if(j == n)
{
break;
}
因为有可能 n<k 导致 i 计算到 ≥n+1 的范围去。
md卡了我两天现在感觉自己像个若只