第一个while是指t>1的情况下进入,即若输入n=0、1则直接输出。
第二个while是指t mod a=0的时候进入,即分解质因数。若分解了这个因数后的数还有这个因数,则继续分解:例:4=2*2。
最后t div a=1时就不用输出乘号了。
inc为什么不放在上面?问题问得好。
首先,inc如果放在上面,则会(一定几率)造成死循环:
例:t=28,第一步后输出2*,若inc(a)放在上面,则下一步a=3,t mod a<>0,就会一直卡在这里。(请自行验证)。
所以,inc(a)是分解质因数的一个重要步骤,即分解质因数的因数每次循环完后需要加一。
具体框架:
while(这是第一个开头)
begin
while(这是第二个开头)
begin
end(这是第二个结尾)
end(这是第一个结尾)