打表出1-n的所有因子个数
模板一:
1 int divisor_num[maxn]; 2 void init(int n) 3 { 4 for(int i = 1; i <= n; i++) 5 { 6 divisor_num[i]++; 7 for(int j = i * 2; j <= n; j += i) 8 divisor_num[j]++; 9 } 10 }
模板二:
1 int divisor_num[maxn]; 2 void init(int n) 3 { 4 for(int i = 1; i * i <= n; i++) 5 { 6 for(int j = i; i * j <= n; j++) 7 { 8 divisor_num[i * j] += 2; 9 if(i == j)divisor_num[i * j]--; 10 } 11 } 12 }