[BZOJ 1968]约数研究
转载请注明出处:http://danihao123.is-programmer.com/
妙,妙啊!
此乃数学之大道也
直接递推+求约数会炸,但是……
你可以枚举约数x,然后求出区间内约数有它的个数,很明显是\( \lfloor n \div x \rfloor \),然后求和就行了……
代码:
/**************************************************************
Problem: 1968
User: danihao123
Language: C++
Result: Accepted
Time:32 ms
Memory:1272 kb
****************************************************************/
#include <iostream>
using namespace std;
int main(){
register int i;
register unsigned long long ans=0;
int n;
cin>>n;
for(i=1;i<=n;i++)
ans+=n/i;
cout<<ans<<endl;
return 0;
}
评论 (0)