主题:[讨论]一个数因式分解问题
因式分解:将大于1的自然数进行因式分解,输入N(<=2000000000),求N的所有形式不同的因式分解方案总数。(希望能减少搜索量,优化程序)
例如:12分解的方案总数为8。
12=12 , 12=6*2 , 12=4*3 , 12=3*4, 12=3*2*2,12=2*6 , 12=2*3*2, 12=2*2*3
输入:一行整数N , 如12,
输出:输出一行整数,如 8
最大数据1073731824
答案245728
如果用普通的:
procedure try(n:longint);
var
i:longint;
begin
s:=s+1; {s初始为0}
for i:=2 to n-1 do
if n mod i=0 then try(n div i);
end;
只能出4个点..
请问如何做能出8个点?
例如:12分解的方案总数为8。
12=12 , 12=6*2 , 12=4*3 , 12=3*4, 12=3*2*2,12=2*6 , 12=2*3*2, 12=2*2*3
输入:一行整数N , 如12,
输出:输出一行整数,如 8
最大数据1073731824
答案245728
如果用普通的:
procedure try(n:longint);
var
i:longint;
begin
s:=s+1; {s初始为0}
for i:=2 to n-1 do
if n mod i=0 then try(n div i);
end;
只能出4个点..
请问如何做能出8个点?