Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> sistemi >> Unix >> .

Come si scrive un programma completo per trovare fattori di dato numero nella programmazione di shell unix?

Esistono diversi approcci per trovare fattori in uno script di shell unix. Eccone due, uno che utilizza `seq` e` bc` (più portatile) e un altro sfruttamento delle capacità aritmetiche di Bash (leggermente più veloci ma meno portatili):

Metodo 1:usando `seq`,` bc` e `grep` (più portatile)

Questo metodo è altamente portatile perché si basa su utility UNIX standard.

`` `Bash

#!/bin/bash

Ottieni input dall'utente

Leggi -p "Immettere un numero:" Num

Gestione degli errori per input non positivo

if ((num <=0)); Poi

Echo "Inserisci un numero intero positivo."

Uscita 1

fi

genera numeri da 1 a num

Seq 1 $ num | mentre leggi i; Fare

# Utilizzare BC per eseguire il funzionamento del modulo. Questo gestisce grandi numeri.

if (($ (echo "$ num % $ i" | bc) ==0)); Poi

echo "$ i"

fi

Fatto

`` `

Questo script richiede prima l'utente per un numero. Quindi usa `seq` per generare una sequenza di numeri da 1 al numero di input. Il ciclo `while` itera attraverso ogni numero e` bc` calcola il modulo. Se il modulo è 0, il numero è un fattore ed è stampato.

Metodo 2:utilizzando aritmetica bash (meno portatile, leggermente più veloce)

Questo metodo sfrutta le capacità aritmetiche integrate di Bash, rendendolo leggermente più veloce per numeri più piccoli, ma potrebbe non essere portatile come il metodo `BC`.

`` `Bash

#!/bin/bash

Ottieni input dall'utente

Leggi -p "Immettere un numero:" Num

Gestione degli errori per input non positivo

if ((num <=0)); Poi

Echo "Inserisci un numero intero positivo."

Uscita 1

fi

itera attraverso i numeri da 1 a num

per ((i =1; i <=num; i ++)); Fare

# Controlla se sono un fattore usando il modulo operatore

if ((num % i ==0)); Poi

echo "$ i"

fi

Fatto

`` `

Questo script è simile al primo, ma utilizza l'espansione aritmetica integrata di Bash `((...))` per l'operazione modulo, evitando la chiamata esterna a `BC`.

Come eseguire:

1. Salva entrambi gli script in un file (ad es. `Find_factors.sh`).

2. Rendi eseguibile lo script:`chmod +x find_factors.sh`

3. Esegui lo script:`./Find_factors.sh`

Esempio di output (per input 12):

`` `

1

2

3

4

6

12

`` `

Ricorda di scegliere il metodo che si adatta meglio alle tue esigenze e ai sistemi su cui lo eseguirai. Il primo metodo (usando `bc`) è generalmente raccomandato per la sua più ampia compatibilità. Il secondo è più veloce per numeri più piccoli sui sistemi in cui l'aritmetica di Bash è ottimizzata.

 

sistemi © www.354353.com