Project Euler Problem 12-Highly divisible triangular number

最直接的想法就是暴力搞搞,直接枚举,暴力分解因子。再好一点,就打个素数表来分解因子。假设num=p1a1*p2a2...pn^an,则所有因子个数为(a1+1)(a2+1)...(an+1)。
再好一点呢,还是要利用积性函数。假设因子个数函数为f(x),因为num=n
(n+1)/2,所以num2=n(n+1),因为n和n+1为相邻的正整数,所以互质,所以f(2num)=f(n)f(n+1),
则f(num)=f(n)f((n+1)/2)(n+1为偶数)或者f(num)=f(n/2)f(n+1)(n为偶数)。
人懒,写了个暴力的,140ms

posted @ 2017-10-28 12:07  追梦的蚂蚁  阅读(157)  评论(0编辑  收藏  举报