這應該是求一個數所有素數因子的一個程序,而且素數因子可以重復,實際上輸出結果的結果相乘就是這個數。
這是用遞歸程序實現的。
shunum(inta)這個函數在輸出a的第一個最小的因子后,繼續調用shunum函數計算這個數除以剛才輸出的第一個最小因子的結果的因子,然后跳出循環。比如輸入60這個數,程序執行的過程是:
shunum(60)----輸出2然后調用shunum(60/2)=shunum(30);
shunum(30)---輸出2然后調用shunum(30/2)=shunum(15);
shunum(15)---輸出3然后調用shunum(15/3)=shunum(5);
shunum(5)---輸出5然后調用shunum(5/5)=shunum(1);
shunum(1)---for循環的條件不符合,直接返回;
執行shunum(5)的break,跳出循環,shunum(5)結束;
執行shunum(15)的break,跳出循環,shunum(15)結束;
執行shunum(30)的break,跳出循環,shunum(30)結束;
執行shunum(60)的break,跳出循環,shunum(60)結束;
可以看出,輸出結果是2235,而2*2*3*5=60。