原代碼 cout << "*" << i 導致首位出現多餘 *。
void fnabs(int n) {
int i, count = 0;
for (i = 2; i <= n; i++) {
while (n % i == 0) {
n /= i;
if (count++) cout << "*" << i;
else cout << i;
}
}
}
int main() {
int n = 90;
cout << n << "=";
fnabs(n); // 輸出 90=2*3*3*5
return 0;
}
count 從 0 開始,首次輸出不印 *,後續每次前置 *。