Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Metóda 1:Použitie `seq`,` bc` a `grep` (prenosnejšie)
Táto metóda je vysoko prenosná, pretože sa spolieha na štandardné Unix Utilities.
`` `Bash
#!/bin/bash
prečítať -p "Zadajte číslo:" num
if ((num <=0)); potom
Echo „Zadajte kladné celé číslo“.
výstup 1
FI
SEQ 1 $ NUM | Počas čítania i; robiť
# Použite BC na vykonanie prevádzky Modulo. To zvláda veľké počty.
if (($ (echo "$ num % $ i" | bc) ==0)); potom
Echo "$ i"
FI
vykonaný
`` `
Tento skript najprv vyzve používateľa na číslo. Potom používa „seq` na generovanie sekvencie čísel od 1 do vstupného čísla. „Zatiaľ čo“ slučka iteroval cez každé číslo a `Bc` vypočíta modulo. Ak je modulo 0, číslo je faktorom a je vytlačené.
Metóda 2:Použitie aritmetiky Bash (menej prenosná, mierne rýchlejšia)
Táto metóda využíva vstavané aritmetické schopnosti spoločnosti Bash, vďaka čomu je o niečo rýchlejšia pre menšie čísla, ale nemusí byť taká prenosná ako metóda „BC`.
`` `Bash
#!/bin/bash
prečítať -p "Zadajte číslo:" num
if ((num <=0)); potom
Echo „Zadajte kladné celé číslo“.
výstup 1
FI
pre ((i =1; i <=num; i ++)); robiť
# Skontrolujte, či som faktor používajúci operátor Modulo
if ((num % i ==0)); potom
Echo "$ i"
FI
vykonaný
`` `
Tento skript je podobný ako prvý, ale používa Bashovu vstavanú aritmetickú expanziu `((...))" pre operáciu modulo, čím sa vyhýba externému volaniu na "BC".
Ako spustiť:
1. Uložte buď skript do súboru (napr. `Find_factors.sh`).
2. Urobte si spustiteľný skript:`chmod +x find_factors.sh`
3. Spustite skript:`./Find_factors.sh`
Príklad výstupu (pre vstup 12):
`` `
1
2
3
4
6
12
`` `
Nezabudnite zvoliť metódu, ktorá najlepšie vyhovuje vašim potrebám a systémom, na ktorých budete spustiť. Prvá metóda (s použitím `BC`) sa všeobecne odporúča pre svoju širšiu kompatibilitu. Druhý je rýchlejší pre menšie čísla v systémoch, v ktorých je optimalizovaná aritmetika Bash.