工大OJ 1014 求约数个数
2011-05-16 15:19
197 查看
//求约数个数 AC int getResult(int i_num) { int i_flag_max = i_num; int i_count = 0; for ( int i=1; i<=i_flag_max; i++ ) { if ( i_num % i == 0 ) { if ( i_num / i != i ) { i_count += 2; } else { i_count += 1; } } i_flag_max = i_num / i - 1; } return i_count; }
1、主要是通过减少循环的次数来减少时间复杂度,这里认为:遍历了i,则 num/i~num之间的数都不可能再成为其约数了。(实际也是这样)
2、num/i == i说明出现平方值等于num,此时算一个约数
相关文章推荐
- 小五笔记1014 推荐
- ZOJ Problem Set - 1014
- poj 1014 Dividing 多重背包 二进制拆分
- POJ1014-Dividing
- 杭电1014 Uniform Generator
- poj 1014 Dividing 【多重背包】
- 【hdu - 1014】
- POJ 1014 Dividing
- HDOJ 1014
- acdream 1014 Dice Dice Dice(组合)
- POJ 1014 Dividing(多重背包 + 倍增优化)
- hdu 1014 Uniform Generator ( 方法 2 )
- poj 1014 Dividing 背包问题(dfs)(其实我用最笨的方法写的)
- POJ 1014 dividing
- hdu 1014 Uniform Generator 简单题
- 天梯 1014 装箱问题
- 浙江大学PAT上机题解析之1014. 福尔摩斯的约会 (20)
- 1014[Specialized Four-Dig]
- Sicily 1014. Specialized Four-Dig
- POJ 1014 Dividing 解答