牛牛以前在老師那裏得到了一個正整數數對(x, y), 牛牛忘記他們具體是多少了。
但是牛牛記得老師告訴過他x和y均不大於n, 並且x除以y的餘數大於等於k。
牛牛希望你能幫他計算一共有多少個可能的數對。
輸入描述:
輸入包括兩個正整數n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。
輸出描述:
對於每個測試用例, 輸出一個正整數表示可能的數對數量。
示例1
輸入
5 2
輸出
7
說明
滿足條件的數對有(2,3),(2,4),(2,5),(3,4),(3,5),(4,5),(5,3)
對y變量進行遍歷,y從k+1開始取值,然後考慮x的取值。x可以從k開始到n,將x按照除以k的餘數進行分類,大於等於k的爲一類,小於k的爲另一類,注意使用long類型變量
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n,k;
cin >> n >> k;
long long res = 0;
if(k == 0)
{
res = n*n;
cout << res << endl;
return 0;
}
for(long long y = k+1;y <= n;y++)
{
long long d = y - k;
res += ((n-k+1)/y)*d;
long long yushu = (n-k+1)%y;
if(d >= yushu)res += yushu;
else res += d;
}
cout << res << endl;
}