#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL mod = 1e9 + 7; const int N = 100005; int n, m; LL res[12]; int a[12]; int Find(int left, int val) { int right = n, mid; while (left <= right) { mid = (right + left) / 2; if (n / mid<val) right = mid - 1; else left = mid + 1; } return right; } int main() { int q; scanf("%d", &q); while (q--) { scanf("%d", &n); LL res = 0; for (int i = 1; i <= n; i++) { int val = n / i; int j = Find(i, val); res += val*(j - i + 1); i = j; } printf("%lld\n", res); } return 0; } |
Double click to view unformatted code.