這應(yīng)該是求一個(gè)數(shù)所有素?cái)?shù)因子的一個(gè)程序,而且素?cái)?shù)因子可以重復(fù),實(shí)際上輸出結(jié)果的結(jié)果相乘就是這個(gè)數(shù)。
這是用遞歸程序?qū)崿F(xiàn)的。
shunum(inta)這個(gè)函數(shù)在輸出a的第一個(gè)最小的因子后,繼續(xù)調(diào)用shunum函數(shù)計(jì)算這個(gè)數(shù)除以剛才輸出的第一個(gè)最小因子的結(jié)果的因子,然后跳出循環(huán)。比如輸入60這個(gè)數(shù),程序執(zhí)行的過(guò)程是:
shunum(60)----輸出2然后調(diào)用shunum(60/2)=shunum(30);
shunum(30)---輸出2然后調(diào)用shunum(30/2)=shunum(15);
shunum(15)---輸出3然后調(diào)用shunum(15/3)=shunum(5);
shunum(5)---輸出5然后調(diào)用shunum(5/5)=shunum(1);
shunum(1)---for循環(huán)的條件不符合,直接返回;
執(zhí)行shunum(5)的break,跳出循環(huán),shunum(5)結(jié)束;
執(zhí)行shunum(15)的break,跳出循環(huán),shunum(15)結(jié)束;
執(zhí)行shunum(30)的break,跳出循環(huán),shunum(30)結(jié)束;
執(zhí)行shunum(60)的break,跳出循環(huán),shunum(60)結(jié)束;
可以看出,輸出結(jié)果是2235,而2*2*3*5=60。