您的位置:首页 > 其它

工大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,此时算一个约数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: