質因子連乘式(II)
程式是由網友 3173137 提供,與質因子連乘式(I)程式比較,這個版本的程式除了可以顯示質因子,還可以顯示質因子的冪數,所以較為方便。另外雖然第二個程式很長,但對於計算大因質子時,由於使用較佳的方法,速度會明顯比第一個程式快,有關第二個程式的計算原理,請參看附註2。
網友提供程式日期: 2008年1月7日
注意: 藍色程式碼 ˚ 是按 o,,,
第一個程式 (100 bytes)
Mem clear: ?→X: Fix 0: Lbl 0: 2 - (M=2 M+:
MM>X => X→M: X÷M: Rnd: X - MAns => Goto 0:
Lbl 1: X÷MM^Y: Rnd: X=MM^YAns => Y + 1→Y => Goto 1:
M˚ + Y÷60˚◢ X÷M^Y→X: 1→Y: X - 1 => Goto 0: Norm 1
第二個程式 (315 bytes)
Mem clear: ?→X: 2M+: Fix 0: Lbl 0: X÷MM^Y: Rnd:
X=MM^YAns => Y+1→Y => Goto 0: Y => M˚ + Y÷60˚◢
X÷M^Y→X: X=1 => Goto 7: 0→Y: 2 - (M=2M+:
M - 7 => Goto 0: Lbl 1:
X÷M: Rnd: X=MAns => Goto 3: 4M+:
X÷M: Rnd: X=MAns => Goto 3: 2M+:
X÷M: Rnd: X=MAns => Goto 3: 4M+:
X÷M: Rnd: X=MAns => Goto 3: 2M+:
X÷M: Rnd: X=MAns => Goto 3: 4M+:
X÷M: Rnd: X=MAns => Goto 3: 6M+:
X÷M: Rnd: X=MAns => Goto 3: 2M+:
X÷M: Rnd: X=MAns => Goto 3: 6M+:
X≧MM => Goto 1: X→M: Lbl 3: X÷MM^Y: Rnd:
X=MM^YAns => Y+1→Y => Goto 3: M˚ + Y÷60˚◢
X÷M^Y→X: 1→Y: M÷30 - . 7: Rnd: 30Ans+7→M:
X-1 => Goto 1: Lbl 7: Norm 1
例題: 求 352的質因子連乘式。
按 Prog 1 再按 352 EXE (顯示 2˚5˚0,即是質因子為25)
EXE (顯示 11˚1˚0,即是質因子為111) ) EXE (顯示Norm 1表示計算完結)
所以 352 = 25 × 11
註1: 輸入的數值必須為正整數,否則計算會錯誤,程式計算的數值要小於 9999 9999 99。
註2: 第一個程式嘗試的因子為2及正奇數(不包括1),第二個程式嘗試的因子為 2, 3, 5, 7+30n, 13+30n, 19+30n, 23+30n, 29+30n及31+30n (其中 n為0或正整數),亦即是嘗試的因子除了2, 3, 5外,其它嘗試的奇數是不包括 3 及 5的倍數,所以若果不考慮開始的2, 3, 5因子,第一個程式每30個正數,要嘗試15個數值,而第二個程式則每30個正數,只嘗試8個數值,所以第二個程式的速度會較快,特別是分解的數值包含一些數值大的質因子,第二個程式會明顯地比第一個程式快。