リンク:
https://vjudge.net/problem/Gym-100923I
質問の意味:
私たちは、ポルCostelは豚がFMIのダンスパーティーに到着したのか分かりません。私たちが知っているすべては、彼がやったことです。
ポルCostelがエアコンを破ったので、ダンスフロアは暑いです。ダンスフロアでは、男の子と女の子は不器用です。パーティーで男の子があります。目一つは不器用レベルを有します。女の子はパーティーでもエール。番目の女の子は、同様にぎこちなさのレベルを持っています。ポルCostelは、彼らの不器用レベルの製品はほとんど、つまり女の子の不器用さのレベル*少年不器用レベルである場合にのみ、少年一対の女の子が踊ることができることを発見します。ポルCostelはネギのスライスとオート麦の袋は、このパーティーの人々よりも良いダンスのペアを作ることができると考えています。それにもかかわらず、彼は多くのペア(男の子、女の子)が踊ることができる方法を見つけるしたいと思います。入力は、テストの数を表す数字が入ります。次の行は、番号が含まれています。
考えます;
男性と女性が選ぶことができますので、SQRTに最適化された(n)は、それぞれのn /私は二度数えて、私はそれを使用して最初の、そして最終的に対応する電流を追加します。
コード:
#include <iostream>
#include <memory.h>
#include <string>
#include <istream>
#include <sstream>
#include <vector>
#include <stack>
#include <algorithm>
#include <map>
#include <queue>
#include <math.h>
#include <cstdio>
#include <set>
#include <iterator>
#include <cstring>
using namespace std;
typedef long long LL;
const int MAXN = 1e6+10;
const int MOD = 1e9+7;
LL n;
int main()
{
freopen("perechi3.in","r",stdin);
freopen("perechi3.out","w",stdout);
int t;
cin >> t;
while (t--)
{
LL res = 0;
cin >> n;
for (LL i = 1;i*i <= n;i++)
res += 2*(n/i-i)+1;
cout << res << endl;
}
return 0;
}