int i
int j//用于计算个数
int sum//用于求和
int m
m = 20//分解20
for i=1 to m/2
do while mod(m,i) = 0
j++
if j =1 then
sle_1.text =string(m)+"="+"1"+"*"+string(i)
else
sle_1.text += '*'+string(i)
end if
m=m/i
loop
next
//分解质因数。。哪里错了?程序进入死循环了。。
------解决方案--------------------
int i
int j//用于计算个数
int sum//用于求和
int m
m = 20//分解20
for i=2 to m/2
do while mod(m,i) = 0
j++
if j =1 then
sle_1.text =string(m)+"="+"1"+"*"+string(i)
else
sle_1.text += '*'+string(i)
end if
m=m/i
loop
next
sle_1.text += '*'+string(m)
注:
1.for迴圈需要從2開始,這是造成死迴圈的原因,不然M/1永遠是M.
2.需要在最后加上M的值,因為最后一個質數不進入迴圈