Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Armstrongov broj ključni je koncept u području šifriranja i dešifriranja za sigurnost podataka.

Opći koncept obrade znamenki broja temeljna je tehnika. Ovim pristupom možete riješiti mnoge zadatke, poput zbrajanja znamenki, dobivanja umnoška znamenki, brojanja znamenki i okretanja broja.

Ali što je Armstrongov broj i kako ga testirati?

Što je Armstrongov broj?

Armstrongov broj je broj čiji je zbroj kubova znamenki jednak samom broju. Na primjer, 153 je Armstrongov broj. Ako uzmete znamenke od 153 pojedinačno i sastavite ih na kocku:

(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)

Zatim dodajte rezultate:

1 + 125 + 27

Dobit ćete 153, isto kao i originalni broj.

Algoritam za pronalaženje Armstrongovog broja

Pisanje algoritma je prvi korak u implementaciji bilo kojeg programa. Možete koristiti algoritam kao referencu za pisanje pseudokoda, zatim ga implementirati pomoću željenog programskog jezika. Algoritam vam daje točan niz uputa koje trebate slijediti, eliminirajući logičke pogreške i čineći implementaciju jednostavnijom.

instagram viewer

Evo algoritma za određivanje je li broj Armstrongov ili ne:

  1. Deklarirajte varijable sum, temp, n, r
  2. Uzmite vrijednost n od korisnika
  3. Inicijalizirajte varijablu sum na 0 i uzmite sigurnosnu kopiju n kao temp = n
  4. Ponovite korake 5 - 7 dok je n > 0
  5. r = n % 10
  6. zbroj = zbroj + kub svake znamenke (r × r × r)
  7. n = n / 10
  8. Ako je zbroj jednak temp, prikazati "Broj je Armstrongov broj"
  9. Inače, prikaži "Broj nije Armstrongov broj"

Pseudokod za implementaciju Armstrongovog algoritma

Pseudokod može biti koristan korak u dizajniranju implementacije algoritma. Pisanje pseudokoda pomaže vam da ga jednostavno pretvorite u kod u bilo kojem programskom jeziku. Evo pseudokoda za implementaciju Armstrongovog broja:

Armstrongov program u C

Promatrajte gornji pseudokod i pretvorite svaku izjavu u C kod.

Počnite s uvozom stdio.h za izvođenje ulaznih i izlaznih operacija. Izjavite glavni funkcionirati i početi implementirati logiku programa. Koristiti n za pohranu unesenog broja, r za pohranjivanje pojedinačnih znamenki broja, iznos za pohranjivanje zbroja kubova znamenki i temp za pohranjivanje kopije broja.

Koristiti printf funkcija za traženje od korisnika da unese broj. Koristiti skenirati funkcija za čitanje broja i njegovo pohranjivanje u varijablu n. %d je specifikator decimalnog formata za uzimanje cijelog broja kao ulaza.

Očistite sve nepotrebne vrijednosti tako da inicijalizirate zbroj kao nulu i napravite sigurnosnu kopiju n kao temp.

#uključi <stdio.h>

intglavni()
{
int n, r, zbroj, temp;
printf("Molimo unesite broj: ");
scanf("%d", &n);
zbroj = 0; temp = n;

Izjaviti a dok petlja koja se izvodi sve dok broj ne bude nula ili manji. Unutar petlje nalazi se proces u tri koraka koji možete koristiti u raznim drugim programskim zadacima. Tri su koraka:

  1. Dobijte pojedinačnu znamenku broja uzimajući modul broja s 10. Kada bilo koji broj podijelite s 10 kao cjelinu, ostatak je sama zadnja znamenka. Na primjer, kada podijelite 153 s 10, rezultat cijelog broja je 15, a modul je 3.
  2. Kada imate pojedinačnu znamenku, možete izvršiti željenu operaciju. Da biste pronašli Armstrongov broj, željena operacija je zbroj kubova znamenki broja. Uzmite kub znamenke r i dodajte je varijabli zbroja.
  3. Uklonite zadnju znamenku broja tako da je podijelite s 10. Dijeljenjem s 10 dobivate kvocijent, u ovom slučaju 15.
dok (n > 0) {
r = n % 10;
zbroj = zbroj + (r * r * r);
n = n/10;
}

Provjerite je li dobiveni zbroj jednak izvornom broju. Ako su jednaki, broj je doista Armstrongov broj, inače nije.

ako (temp == zbroj)
printf("Broj je Armstrongov broj\n");
drugo
printf("Broj nije Armstrongov broj\n");

povratak0;
}

Druge primjene općeg algoritma

Promjenom koraka dva od gore prikazane logike u tri koraka, možete implementirati razne programe.

1. Zbroj, umnožak znamenki broja

Da biste dobili zbroj znamenki broja, jednostavno zamijenite liniju s:

zbroj = zbroj + r;

Za umnožak deklarirajte varijablu prod kao 1 i zbroj zbroja zamijenite simbolom množenja:

proizvod = proizvod * r;

2. Broj znamenki broja

Do brojati znamenke broja, jednostavno inicijalizirajte varijablu count na nulu, izostavite prvi korak i povećavajte je dok n ne bude jednako nuli. Implementacija petlje će izgledati ovako:

dok (n > 0) {
brojati++;
n = n/10;
}

3. Naličje broja, palindrom broja

Da biste obrnuli broj, inicijalizirajte varijablu rev ​​na jedan i dodajte je nakon množenja s deset:

rev = (rev * 10) + r;

Nakon što dobijete naličje broja, usporedite ga s kopijom samog izvornog broja. Ako je obrnuti broj jednak samom broju, to je broj palindroma.

4. Najmanja i najveća znamenka broja

Inicijalizirajte varijablu min kao devet i usporedite je sa znamenkom izdvojenom iz prvog koraka kako biste pronašli najmanju znamenku broja. Možete ga implementirati kao:

ako (r < min) {
min = r;
}

Slično, inicijalizirajte varijablu max s nulom i usporedite je s izdvojenom znamenkom kako biste pronašli najveću znamenku broja. Možete ga implementirati kao:

ako (r > max) {
max = r;
}

Ovako možete pronaći najveća i najmanja znamenka broja.

5. Posebni brojevi

Postoje mnogi drugi brojevi, poput Armstrongovog broja, koje možete izračunati. To uključuje Neonski broj, Automorfni broj, Krishnamurthyjev broj, Buzzov broj, Savršeni broj, Prijateljski broj i Twin prosti broj.

Programiranje i matematika

Matematika se široko koristi u programiranju. Binarna matematika srž je programiranja budući da je sav softver koji danas koristite kombinacija znamenki nula i jedan. Svi podaci s kojima radite pohranjeni su u binarnom formatu. Linearna algebra koristi se u aplikacijama strojnog učenja, algoritmima grafova, kvantnom računanju itd.

Račun, diskretna matematika i statistika naširoko se koriste u rješavanju problema i dizajnu algoritama. Matematika poboljšava vaše računalne vještine i bitan je dio programiranja.