1 
                    
                    66450146      2017-01-18 18:15:49 +08:00 
                    
                    不是 [2, sqrt(n)) 过一遍就好了么 
                 | 
            
     2 
                    
                    luban      2017-01-18 18:27:39 +08:00 
                    
                    任意一个数都能表示成所有质数的乘积,根据这些质数可以算出有多少个约数 
                当然并不能确定表示成质数乘积的过程比单次遍历快 比如 80=2 的 4 次方*5 ,(4+1)*(1+1)=10 可参考这个 http://www.co8bit.com/index.php/2011/06/11/269/  | 
            
     3 
                    
                    billgreen1      2017-01-18 18:28:03 +08:00 
                    
                    @66450146 他要的是约数,不是质因子 
                 | 
            
     4 
                    
                    htfy96      2017-01-18 18:49:12 +08:00 
                    
                    
                 | 
            
     5 
                    
                    jininij      2017-01-18 18:50:59 +08:00 via Android 
                    
                    先分解质因子,再合并出所有约数。如果你已经有了一个质数数组,那么分解这一步也可以做到很低的复杂度。 
                 | 
            
     6 
                    
                    morefreeze      2017-01-18 19:07:27 +08:00 
                    
                    
                 | 
            
     7 
                    
                    owt5008137      2017-01-18 19:29:07 +08:00 
                    
                    到 sqrt(n)就可以了,算素数反正也是 O(n),不如直接过一遍完事儿 
                 | 
            
     8 
                    
                    siriussilen      2017-01-18 20:17:20 +08:00 
                    
                    bool prime[maxv]; 
                fill(prime,prime+maxv,true); for(int i=0;i<maxv;++i) { if(i%2==0) prime[i]=false; } for(int i=3;i<=sqrt(maxv);++i) { if(prime[i]) { for(int j=i*2;j<maxv;j+=i) prime[j]=false; } } 求出 2-n 所有的素数时间复杂度 O(n) 楼主参考一下吧  | 
            
     9 
                    
                    siriussilen      2017-01-18 22:01:40 +08:00 
                    
                    @owt5008137 求模运算这个 O 可不低喔 
                 | 
            
     10 
                    
                    owt5008137      2017-01-19 00:56:38 +08:00 
                    
                    @siriussilen 确实,取模消耗比较高。你这样好一些,就是麻烦点。 
                 | 
            
     11 
                    
                    40huo      2017-01-19 09:44:20 +08:00 
                    
                    分解个 RSA 公钥这些算法都跪了。。。 
                 | 
            
     13 
                    
                    hanzichi      2017-01-19 13:49:09 +08:00 
                    
                    量大的话,我能想到的方法是先维护一个素数数组,然后分解质因子,然后深度优先搜索枚举约数 ... 
                 |