当前位置: 代码迷 >> PB >> 分解质因数。错哪了
  详细解决方案

分解质因数。错哪了

热度:66   发布时间:2016-04-29 08:15:03.0
分解质因数。。哪里错了?
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的值,因為最后一個質數不進入迴圈
  相关解决方案