Un numero Armstrong è un concetto chiave nel campo della crittografia e decrittografia per la sicurezza dei dati.
Il concetto generale di elaborazione delle cifre di un numero è una tecnica fondamentale. Puoi risolvere molte attività con questo approccio, come sommare cifre, ottenere il prodotto di cifre, contare cifre e invertire un numero.
Ma cos'è un numero di Armstrong e come si fa a testarlo?
Cos'è un numero Armstrong?
Un numero di Armstrong è un numero la cui somma dei cubi delle sue cifre è uguale al numero stesso. Ad esempio, 153 è un numero di Armstrong. Se prendi le cifre di 153 singolarmente e le cubi:
(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)
Quindi aggiungi i risultati:
1 + 125 + 27
Otterrai 153, lo stesso del numero originale.
Un algoritmo per trovare un numero di Armstrong
Scrivere un algoritmo è il primo passo per implementare qualsiasi programma. È possibile utilizzare l'algoritmo come riferimento per scrivere pseudocodice, quindi implementarlo utilizzando il linguaggio di programmazione desiderato. Un algoritmo fornisce la serie esatta di istruzioni da seguire, eliminando gli errori logici e semplificando l'implementazione.
Ecco l'algoritmo per scoprire se un numero è Armstrong o meno:
- Dichiara le variabili sum, temp, n, r
- Prendi il valore di n dall'utente
- Inizializza la variabile sum a 0 e prendi il backup di n come temp = n
- Ripetere i passaggi 5 - 7 mentre n > 0
- r = n % 10
- somma = somma + cubo di ogni cifra (r × r × r)
- n = n/10
- Se la somma è uguale alla temperatura, visualizza "Il numero è un numero Armstrong"
- Altrimenti, visualizza "Il numero non è un numero Armstrong"
Pseudocodice per l'implementazione dell'algoritmo Armstrong
Lo pseudocodice può essere un passaggio utile nella progettazione dell'implementazione di un algoritmo. Scrivere lo pseudocodice ti aiuta a convertirlo facilmente in codice in qualsiasi linguaggio di programmazione. Ecco lo pseudocodice per l'implementazione del numero Armstrong:
Il programma Armstrong in C
Osserva lo pseudocodice sopra e converti ogni istruzione in codice C.
Inizia importando stdio.h per eseguire le operazioni di input e output. Dichiara il principale funzione e iniziare a implementare la logica del programma. Utilizzo N per memorizzare il numero inserito, R per memorizzare le singole cifre del numero, somma per memorizzare la somma dei cubi delle cifre, e temp per memorizzare una copia del numero.
Usa il printf funzione per chiedere all'utente di inserire un numero. Usa il scanf funzione per leggere il numero e memorizzarlo in variabile N. %D è l'identificatore di formato decimale per accettare un numero intero come input.
Cancella qualsiasi valore spazzatura inizializzando sum come zero e fai un backup di n come temp.
#includere <stdio.h>
intprincipale()
{
int n, r, somma, temp;
stampaf("Per favore inserisci un numero: ");
scanf("%D", &N);
somma = 0; temperatura = n;
Dichiara un Mentre ciclo che viene eseguito fino a quando il numero è zero o inferiore. All'interno del ciclo c'è un processo in tre fasi che puoi utilizzare in varie altre attività di programmazione. I tre passi sono:
- Ottieni la singola cifra del numero prendendo il modulo del numero con 10. Quando dividi qualsiasi numero per 10 nel suo insieme, il resto è l'ultima cifra stessa. Ad esempio, quando dividi 153 per 10, il risultato intero è 15 e il modulo è 3.
- Quando hai la singola cifra puoi eseguire l'operazione desiderata. Per trovare un numero Armstrong, l'operazione desiderata è la somma dei cubi delle cifre del numero. Prendi il cubo della cifra r e aggiungilo alla variabile somma.
- Elimina l'ultima cifra del numero dividendola per 10. Dividendo per 10 si ottiene il quoziente, in questo caso 15.
Mentre (n > 0) {
r = n % 10;
somma = somma + (r * r * r);
n = n/10;
}
Controlla se la somma ottenuta è uguale al numero originale. Se sono uguali, il numero è davvero un numero di Armstrong, altrimenti non lo è.
se (temp == somma)
stampaf("Il numero è un numero Armstrong\n");
altro
stampaf("Il numero non è un numero Armstrong\n");
ritorno0;
}
Altre applicazioni dell'algoritmo generale
Modificando il passaggio due della logica in tre passaggi vista sopra, è possibile implementare una varietà di programmi.
1. Somma, prodotto di cifre di numero
Per ottenere la somma delle cifre di un numero, sostituisci semplicemente la riga con:
somma = somma + r;
Per product, dichiara la variabile prod come 1 e sostituisci la somma additiva con un simbolo di moltiplicazione:
prodotto = prodotto * r;
2. Conteggio delle cifre del numero
A contare le cifre di un numero, è sufficiente inizializzare una variabile count a zero, omettere il passaggio uno e incrementarla finché n non è uguale a zero. L'implementazione del ciclo sarà simile a questa:
Mentre (n > 0) {
conta++;
n = n/10;
}
3. Inverso del numero, numero palindromo
Per invertire un numero, inizializza una variabile rev a uno e aggiungila dopo averla moltiplicata per dieci:
giro = (giro * 10) + r;
Una volta ottenuto il contrario di un numero, confrontalo con la copia del numero originale stesso. Se il numero inverso è uguale al numero stesso, è un numero palindromo.
4. Cifra più piccola e più grande di un numero
Inizializza una variabile min come nove e confrontala con la cifra estratta dal passaggio uno per trovare la cifra più piccola di un numero. Puoi implementarlo come:
se (r < min) {
minimo = r;
}
Allo stesso modo, inizializza una variabile max con zero e confrontala con la cifra estratta per trovare la cifra più grande di un numero. Puoi implementarlo come:
se (r > massimo) {
massimo = r;
}
Ecco come puoi trovare le cifre più grandi e più piccole di un numero.
5. Numeri speciali
Ci sono molti altri numeri, come un numero di Armstrong, che puoi calcolare. Questi includono il numero al neon, il numero automorfico, il numero di Krishnamurthy, il numero Buzz, il numero perfetto, il numero amichevole e il numero primo gemello.
Programmazione e matematica
La matematica è ampiamente utilizzata nella programmazione. La matematica binaria è il fulcro della programmazione poiché tutto il software che usi oggi è una combinazione delle cifre zero e uno. Tutti i dati con cui lavori sono archiviati in formato binario. L'algebra lineare viene utilizzata in applicazioni di apprendimento automatico, algoritmi grafici, calcolo quantistico e altro ancora.
Il calcolo, la matematica discreta e la statistica sono ampiamente utilizzati nella risoluzione di problemi e nella progettazione di algoritmi. La matematica migliora le tue abilità computazionali ed è una parte essenziale della programmazione.