Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Een Armstrong-nummer is een sleutelbegrip op het gebied van encryptie en decryptie voor gegevensbeveiliging.

Het algemene concept van het verwerken van de cijfers van een nummer is een fundamentele techniek. Met deze aanpak kun je veel taken oplossen, zoals cijfers optellen, het product van cijfers berekenen, cijfers tellen en een getal omdraaien.

Maar wat is een Armstrong-nummer en hoe test je er een?

Wat is een Armstrong-nummer?

Een Armstrong-getal is een getal waarvan de som van de derde machten van de cijfers gelijk is aan het getal zelf. 153 is bijvoorbeeld een Armstrong-nummer. Als je de cijfers van 153 afzonderlijk neemt en ze tot een kubus deelt:

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

Voeg vervolgens de resultaten toe:

1 + 125 + 27

Je krijgt 153, hetzelfde als het oorspronkelijke nummer.

Een algoritme om een ​​Armstrong-nummer te vinden

Het schrijven van een algoritme is de eerste stap bij het implementeren van een programma. U kunt het algoritme gebruiken als referentie om pseudocode te schrijven en deze vervolgens implementeren met de door u gewenste programmeertaal. Een algoritme geeft u de exacte reeks instructies die u moet volgen, elimineert logische fouten en maakt de implementatie eenvoudiger.

Hier is het algoritme om te bepalen of een getal Armstrong is of niet:

  1. Declareer variabelen som, temp, n, r
  2. Neem de waarde van n van de gebruiker
  3. Initialiseer de variabele som op 0 en maak een back-up van n als temp = n
  4. Herhaal stappen 5 - 7 terwijl n > 0
  5. r = n% 10
  6. som = som + kubus van elk cijfer (r × r × r)
  7. n = n / 10
  8. Als de som gelijk is aan de temp, geeft u "Getal is een Armstrong-getal" weer
  9. Geef anders weer "Nummer is geen Armstrong-nummer"

Pseudocode voor het implementeren van het Armstrong-algoritme

Pseudocode kan een nuttige stap zijn bij het ontwerpen van de implementatie van een algoritme. Door de pseudocode te schrijven, kunt u deze gemakkelijk omzetten in code in elke programmeertaal. Hier is de pseudocode voor de implementatie van het Armstrong-nummer:

Het Armstrong-programma in C

Bekijk de bovenstaande pseudocode en converteer elke instructie naar C-code.

Begin met importeren standaard.h om de invoer- en uitvoerbewerkingen uit te voeren. Verklaar de voornaamst functie en begin met het implementeren van de logica van het programma. Gebruik N om het invoernummer op te slaan, R om de afzonderlijke cijfers van het nummer op te slaan, som om de som van de derde machten van de cijfers op te slaan, en temp om een ​​kopie van het nummer op te slaan.

Gebruik de printf functie om de gebruiker te vragen een getal in te voeren. Gebruik de scannen functie om het nummer te lezen en op te slaan in een variabele N. %D is de specificatie van het decimale formaat om een ​​geheel getal als invoer te nemen.

Wis alle overbodige waarden door som als nul te initialiseren en maak een back-up van n als temp.

#erbij betrekken <standaard.h>

intvoornaamst()
{
int n, r, som, temp;
printf("Voer alstublieft een nummer in: ");
scannen("%D", &N);
som = 0; uitzendkracht = n;

Verklaar een terwijl lus die loopt totdat het getal nul of minder is. Binnen de lus bevindt zich een proces in drie stappen dat u kunt gebruiken bij verschillende andere programmeertaken. De drie stappen zijn:

  1. Verkrijg het individuele cijfer van het nummer door de modulus van het nummer te nemen met 10. Wanneer u een getal deelt door 10 als een geheel, is de rest het laatste cijfer zelf. Als u bijvoorbeeld 153 door 10 deelt, is het resultaat als geheel getal 15 en de modulus 3.
  2. Als u het individuele cijfer heeft, kunt u de gewenste bewerking uitvoeren. Om een ​​Armstrong-nummer te vinden, is de gewenste bewerking de som van de derde machten van de cijfers van het nummer. Neem de derde macht van het cijfer r en tel deze op bij de variabele som.
  3. Elimineer het laatste cijfer van het getal door het te delen door 10. Bij deling door 10 krijg je het quotiënt, in dit geval 15.
terwijl (n> 0) {
r = n% 10;
som = som + (r * r * r);
n = n / 10;
}

Controleer of de verkregen som gelijk is aan het oorspronkelijke getal. Als ze gelijk zijn, is het getal inderdaad een Armstrong-getal, anders niet.

als (temp == som)
printf("Nummer is een Armstrong-nummer\n");
anders
printf("Nummer is geen Armstrong-nummer\n");

opbrengst0;
}

Andere toepassingen van het algemene algoritme

Door stap twee van de driestapslogica hierboven te wijzigen, kunt u een verscheidenheid aan programma's implementeren.

1. Som, product van cijfers van nummer

Om de som van de cijfers van een getal te krijgen, vervangt u de regel door:

som = som + r;

Declareer variabele prod voor product als 1 en vervang de som van de optelling door een vermenigvuldigingssymbool:

prod = prod * r;

2. Aantal cijfers van nummer

Naar tel de cijfers van een getal, initialiseer eenvoudig een variabele telling naar nul, sla stap één over en verhoog deze totdat n gelijk is aan nul. De implementatie van de lus ziet er als volgt uit:

terwijl (n> 0) {
tel++;
n = n / 10;
}

3. Keerzijde van getal, palindroomgetal

Om een ​​getal om te keren, initialiseert u een variabele rev naar één en voegt u deze toe na vermenigvuldiging met tien:

omwenteling = (omwenteling * 10) + r;

Als je eenmaal het omgekeerde van een nummer hebt, vergelijk het dan met de kopie van het originele nummer zelf. Als het omgekeerde getal gelijk is aan het getal zelf, is het een palindroomgetal.

4. Kleinste en grootste cijfer van een getal

Initialiseer een variabele min als negen en vergelijk het met het cijfer uit stap één om het kleinste cijfer van een getal te vinden. Je kunt het implementeren als:

als (r < minuten) {
min = r;
}

Initialiseer op dezelfde manier een variabele max met nul en vergelijk deze met het geëxtraheerde cijfer om het grootste cijfer van een getal te vinden. Je kunt het implementeren als:

als (r > maximaal) {
maximaal = r;
}

Zo kun je vinden de grootste en kleinste cijfers van een getal.

5. Speciale nummers

Er zijn veel andere getallen, zoals een Armstrong-getal, die u kunt berekenen. Deze omvatten Neon-nummer, Automorphic-nummer, Krishnamurthy-nummer, Buzz-nummer, Perfect-nummer, Minnelijke nummer en Twin priemgetal.

Programmeren en Wiskunde

Wiskunde wordt veel gebruikt bij het programmeren. Binaire wiskunde is de kern van programmeren, aangezien alle software die u tegenwoordig gebruikt een combinatie is van de cijfers nul en één. Alle gegevens waarmee u werkt, worden opgeslagen in binair formaat. Lineaire algebra wordt gebruikt in machine learning-toepassingen, grafiekalgoritmen, kwantumberekeningen en meer.

Calculus, discrete wiskunde en statistiek worden veel gebruikt bij het oplossen van problemen en het ontwerpen van algoritmen. Wiskunde vergroot je rekenvaardigheid en is een essentieel onderdeel van programmeren.