我见过许多像这样的写分解逻辑 1.从 i = 2 开始 2.使用 i * i< = number 条件进行循环
for(int i = 2; i*i <= number; i++){
if(number % i == 0)
// some code
}
我怀疑是: 使用i * i&lt; = number的需要是什么。他在优化什么?
答案 0 :(得分:0)
数字的因素是成对的。例如,数字30
包含因子1
,2
,3
,5
,6
,10
,{{ 1}}和15
:
30
因此,您不需要计算所有因素,只需要计算其中的前半部分,并通过简单的除法运算来获得另一半因素。