数论分块的板子题,主要精华就一点:
剩下的可以看数论分块 - OI Wiki (oi-wiki.org)
#include "bits/stdc++.h" using namespace std; typedef long long LL; LL t,n; inline LL h(LL x){ LL i,j,l,r,ans=0; for (l=1;l<=x;l=r+1){ r=(n/(n/l)); ans+=(n/l)*(r-l+1); } return ans; } int main(){ LL i,j,l,r; scanf("%lld",&t); while (t--){ scanf("%lld",&n); printf("%lld\n",h(n)); } return 0; }
未来是什么样,未来会发生什么,谁也不知道。
但是我知道,
起码从今天开始努力,
肯定比从明天开始努力,
要快一天实现梦想。
千里之行,始于足下! ——《那年那兔那些事儿》