Un număr Armstrong este un concept cheie în domeniul criptării și decriptării pentru securitatea datelor.
Conceptul general de procesare a cifrelor unui număr este o tehnică fundamentală. Puteți rezolva multe sarcini cu această abordare, cum ar fi însumarea cifrelor, obținerea produsului cifrelor, numărarea cifrelor și inversarea unui număr.
Dar ce este un număr Armstrong și cum testezi pentru unul?
Ce este un număr Armstrong?
Un număr Armstrong este un număr a cărui sumă a cuburilor cifrelor sale este egală cu numărul însuși. De exemplu, 153 este un număr Armstrong. Dacă luați cifrele lui 153 individual și le cubiți:
(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)
Apoi adăugați rezultatele:
1 + 125 + 27
Veți obține 153, la fel ca numărul inițial.
Un algoritm pentru a găsi un număr Armstrong
Scrierea unui algoritm este primul pas pentru implementarea oricărui program. Puteți utiliza algoritmul ca referință pentru a scrie pseudocod, apoi îl puteți implementa folosind limbajul de programare dorit. Un algoritm vă oferă seria exactă de instrucțiuni de urmat, eliminând erorile logice și simplificând implementarea.
Iată algoritmul pentru a afla dacă un număr este Armstrong sau nu:
- Declarați variabilele sum, temp, n, r
- Luați valoarea lui n de la utilizator
- Inițializați suma variabilei la 0 și luați backup pentru n ca temp = n
- Repetați pașii 5 - 7 în timp ce n > 0
- r = n % 10
- suma = suma + cubul fiecărei cifre (r × r × r)
- n = n / 10
- Dacă suma este egală cu temperatura, afișați „Numărul este un număr Armstrong”
- Altfel, afișați „Numărul nu este un număr Armstrong”
Pseudocod pentru implementarea algoritmului Armstrong
Pseudocodul poate fi un pas util în proiectarea implementării unui algoritm. Scrierea pseudocodului vă ajută să îl convertiți cu ușurință în cod în orice limbaj de programare. Iată pseudocodul pentru implementarea numărului Armstrong:
Programul Armstrong în C
Observați pseudocodul de mai sus și convertiți fiecare instrucțiune în cod C.
Începeți prin a importa stdio.h pentru a efectua operațiunile de intrare și de ieșire. Declarați principal funcţionează şi începe implementarea logicii programului. Utilizare n pentru a stoca numărul de intrare, r pentru a stoca cifrele individuale ale numărului, sumă pentru a stoca suma cuburilor cifrelor și temp pentru a stoca o copie a numărului.
Folosește printf funcția de a cere utilizatorului să introducă un număr. Folosește scanf funcția de a citi numărul și de a-l stoca în variabilă n. %d este specificatorul de format zecimal pentru a lua un număr întreg ca intrare.
Ștergeți orice valoare de gunoi inițialând suma ca zero și luați o copie de rezervă de n ca temp.
#include <stdio.h>
intprincipal()
{
int n, r, suma, temp;
printf("Vă rugăm să introduceți un număr: ");
scanf("%d", &n);
suma = 0; temp = n;
Declara a in timp ce buclă care rulează până când numărul este zero sau mai mic. În interiorul buclei este un proces în trei pași pe care îl puteți utiliza în diverse alte sarcini de programare. Cei trei pași sunt:
- Obțineți cifra individuală a numărului luând modulul numărului cu 10. Când împărțiți orice număr cu 10 ca întreg, restul este ultima cifră în sine. De exemplu, când împărțiți 153 la 10, rezultatul întregului este 15, iar modulul este 3.
- Când aveți cifra individuală, puteți efectua operația dorită. Pentru a găsi un număr Armstrong, operația dorită este suma cuburilor cifrelor numărului. Luați cubul cifrei r și adăugați-l la variabila sumă.
- Eliminați ultima cifră a numărului împărțind-o la 10. La împărțirea cu 10, obțineți coeficientul, în acest caz, 15.
in timp ce (n > 0) {
r = n % 10;
suma = suma + (r * r * r);
n = n/10;
}
Verificați dacă suma obținută este egală cu numărul inițial. Dacă sunt egale, numărul este într-adevăr un număr Armstrong, în caz contrar, nu este.
dacă (temp == sumă)
printf("Numărul este un număr Armstrong\n");
altfel
printf("Numărul nu este un număr Armstrong\n");
întoarcere0;
}
Alte aplicații ale algoritmului general
Modificând pasul doi din logica în trei pași văzută mai sus, puteți implementa o varietate de programe.
1. Suma, produsul cifrelor numărului
Pentru a obține suma cifrelor unui număr, pur și simplu înlocuiți linia cu:
suma = suma + r;
Pentru produs, declarați variabila prod ca 1 și înlocuiți suma adunării cu un simbol de înmulțire:
prod = prod * r;
2. Numărul de cifre ale numărului
La numără cifrele unui număr, pur și simplu inițializați un număr de variabile la zero, omiteți pasul unu și creșteți-l până când n este egal cu zero. Implementarea buclei va arăta astfel:
in timp ce (n > 0) {
numără++;
n = n/10;
}
3. Reversul numărului, numărul palindrom
Pentru a inversa un număr, inițializați o turație variabilă la unu și adăugați-o după înmulțirea cu zece:
rev = (rev * 10) + r;
Odată ce obțineți reversul unui număr, comparați-l cu copia numărului original în sine. Dacă numărul invers este egal cu numărul însuși, este un număr Palindrom.
4. Cea mai mică și cea mai mare cifră a unui număr
Inițializați o variabilă min ca nouă și comparați-o cu cifra extrasă de la pasul unu pentru a găsi cea mai mică cifră a unui număr. O poți implementa ca:
dacă (r < min) {
min = r;
}
În mod similar, inițializați o variabilă max cu zero și comparați-o cu cifra extrasă pentru a găsi cea mai mare cifră a unui număr. O poți implementa ca:
dacă (r > max) {
max = r;
}
Acesta este modul în care puteți găsi cele mai mari și cele mai mici cifre ale unui număr.
5. Numere speciale
Există multe alte numere, cum ar fi un număr Armstrong, pe care le puteți calcula. Acestea includ numărul neon, numărul automorf, numărul Krishnamurthy, numărul Buzz, numărul perfect, numărul amiabil și numărul prim geamăn.
Programare și Matematică
Matematica este utilizată pe scară largă în programare. Matematica binară este nucleul programării, deoarece tot software-ul pe care îl utilizați astăzi este o combinație a cifrelor zero și unu. Toate datele cu care lucrați sunt stocate în format binar. Algebra liniară este utilizată în aplicații de învățare automată, algoritmi grafici, calcul cuantic și multe altele.
Calculul, matematica discretă și statisticile sunt utilizate pe scară largă în rezolvarea problemelor și proiectarea algoritmilor. Matematica vă îmbunătățește abilitățile de calcul și este o parte esențială a programării.