Eine Armstrong-Nummer ist ein Schlüsselkonzept im Bereich der Verschlüsselung und Entschlüsselung für die Datensicherheit.
Das allgemeine Konzept der Verarbeitung der Ziffern einer Zahl ist eine grundlegende Technik. Mit diesem Ansatz können Sie viele Aufgaben lösen, z. B. das Summieren von Ziffern, das Berechnen des Produkts von Ziffern, das Zählen von Ziffern und das Umkehren einer Zahl.
Aber was ist eine Armstrong-Nummer und wie testet man sie?
Was ist eine Armstrong-Zahl?
Eine Armstrong-Zahl ist eine Zahl, deren Summe der Kuben ihrer Ziffern gleich der Zahl selbst ist. Beispielsweise ist 153 eine Armstrong-Zahl. Wenn Sie die Ziffern von 153 einzeln nehmen und sie in Würfel schneiden:
(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)
Fügen Sie dann die Ergebnisse hinzu:
1 + 125 + 27
Sie erhalten 153, die gleiche wie die ursprüngliche Nummer.
Ein Algorithmus zum Finden einer Armstrong-Zahl
Das Schreiben eines Algorithmus ist der erste Schritt zur Implementierung eines Programms. Sie können den Algorithmus als Referenz verwenden, um Pseudocode zu schreiben, und ihn dann mit Ihrer gewünschten Programmiersprache implementieren. Ein Algorithmus gibt Ihnen die genaue Reihe von Anweisungen, die Sie befolgen müssen, eliminiert Logikfehler und vereinfacht die Implementierung.
Hier ist der Algorithmus, um herauszufinden, ob eine Zahl Armstrong ist oder nicht:
- Deklarieren Sie die Variablen sum, temp, n, r
- Nehmen Sie den Wert von n vom Benutzer
- Initialisieren Sie die Variablensumme auf 0 und sichern Sie n als temp = n
- Wiederholen Sie die Schritte 5 - 7, während n > 0 ist
- r = n % 10
- Summe = Summe + Kubikzahl jeder Ziffer (r × r × r)
- n = n / 10
- Wenn sum gleich temp ist, wird "Number is an Armstrong number" angezeigt
- Sonst "Nummer ist keine Armstrong-Nummer" anzeigen
Pseudocode zur Implementierung des Armstrong-Algorithmus
Pseudocode kann ein nützlicher Schritt beim Entwerfen der Implementierung eines Algorithmus sein. Das Schreiben des Pseudocodes hilft Ihnen, ihn einfach in Code in einer beliebigen Programmiersprache umzuwandeln. Hier ist der Pseudocode für die Implementierung der Armstrong-Zahl:
Das Armstrong-Programm in C
Beobachten Sie den obigen Pseudocode und konvertieren Sie jede Anweisung in C-Code.
Beginnen Sie mit dem Importieren stdio.h um die Eingabe- und Ausgabeoperationen auszuführen. Deklarieren Sie die hauptsächlich Funktion und starten Sie die Implementierung der Logik des Programms. Verwenden N um die eingegebene Nummer zu speichern, R die einzelnen Ziffern der Rufnummer zu speichern, Summe um die Summe der Kubikzahlen zu speichern, und Temp um eine Kopie der Nummer zu speichern.
Verwenden Sie die Druckf Funktion, um den Benutzer aufzufordern, eine Zahl einzugeben. Verwenden Sie die Scanf Funktion, um die Zahl zu lesen und in einer Variablen zu speichern N. %D ist der Dezimalformatbezeichner, um eine Ganzzahl als Eingabe zu akzeptieren.
Löschen Sie alle Müllwerte, indem Sie sum als Null initialisieren und ein Backup von n als temp erstellen.
#enthalten <stdio.h>
inthauptsächlich()
{
int n, r, Summe, Temperatur;
printf("Bitte gebe eine Nummer ein: ");
scanf("%D", &N);
Summe = 0; temp = n;
Erklären Sie a während Schleife, die läuft, bis die Zahl Null oder kleiner ist. Innerhalb der Schleife befindet sich ein dreistufiger Prozess, den Sie in verschiedenen anderen Programmieraufgaben verwenden können. Die drei Schritte sind:
- Erhalten Sie die einzelne Ziffer der Zahl, indem Sie den Modul der Zahl mit 10 nehmen. Wenn Sie eine beliebige Zahl durch 10 als Ganzes teilen, ist der Rest die letzte Ziffer selbst. Wenn Sie beispielsweise 153 durch 10 teilen, ist das ganzzahlige Ergebnis 15 und der Modulus 3.
- Wenn Sie die einzelne Ziffer haben, können Sie Ihre gewünschte Operation durchführen. Um eine Armstrong-Zahl zu finden, ist die gewünschte Operation die Summe der Kubikzahlen der Ziffern der Zahl. Nimm den Würfel der Ziffer r und addiere ihn zur Summenvariablen.
- Eliminiere die letzte Ziffer der Zahl, indem du sie durch 10 dividierst. Bei Division durch 10 erhält man den Quotienten, in diesem Fall 15.
während (n > 0) {
r = n % 10;
summe = summe + (r * r * r);
n = n / 10;
}
Überprüfen Sie, ob die erhaltene Summe der ursprünglichen Zahl entspricht. Wenn sie gleich sind, ist die Zahl tatsächlich eine Armstrong-Zahl, andernfalls nicht.
if (temp == summe)
printf("Nummer ist eine Armstrong-Nummer\n");
anders
printf("Nummer ist keine Armstrong-Nummer\n");
zurückkehren0;
}
Andere Anwendungen des Allgemeinen Algorithmus
Indem Sie Schritt zwei der oben gezeigten dreistufigen Logik ändern, können Sie eine Vielzahl von Programmen implementieren.
1. Summe, Produkt von Ziffern einer Zahl
Um die Quersumme einer Zahl zu erhalten, ersetzen Sie einfach die Zeile durch:
summe = summe + r;
Deklarieren Sie für product die Variable prod als 1 und ersetzen Sie die Additionssumme durch ein Multiplikationssymbol:
prod = prod * r;
2. Anzahl der Ziffern der Zahl
Zu die Ziffern einer Zahl zählen, initialisieren Sie einfach einen Variablenzähler auf Null, lassen Sie Schritt eins aus und erhöhen Sie ihn, bis n gleich Null ist. Die Implementierung der Schleife sieht folgendermaßen aus:
während (n > 0) {
zählen++;
n = n / 10;
}
3. Rückseite der Zahl, Palindromzahl
Um eine Zahl umzukehren, initialisieren Sie eine Variable rev auf eins und addieren sie nach der Multiplikation mit zehn:
Umdrehung = (Umdrehung * 10) + r;
Sobald Sie die Umkehrung einer Nummer erhalten haben, vergleichen Sie sie mit der Kopie der ursprünglichen Nummer selbst. Wenn die umgekehrte Zahl gleich der Zahl selbst ist, handelt es sich um eine Palindromzahl.
4. Kleinste und größte Ziffer einer Zahl
Initialisieren Sie eine Variable min als neun und vergleichen Sie sie mit der aus Schritt eins extrahierten Ziffer, um die kleinste Ziffer einer Zahl zu finden. Sie können es wie folgt implementieren:
wenn (r < Mindest) {
min = r;
}
Initialisieren Sie auf ähnliche Weise eine Variable max mit Null und vergleichen Sie sie mit der extrahierten Ziffer, um die größte Ziffer einer Zahl zu finden. Sie können es wie folgt implementieren:
wenn (r > maximal) {
max = r;
}
So finden Sie die größte und die kleinste Ziffer einer Zahl.
5. Spezielle Nummern
Es gibt viele andere Zahlen, wie eine Armstrong-Zahl, die Sie berechnen können. Dazu gehören die Neonzahl, die automorphe Zahl, die Krishnamurthy-Zahl, die Buzz-Zahl, die perfekte Zahl, die freundliche Zahl und die Zwillings-Primzahl.
Programmierung und Mathematik
Mathematik ist in der Programmierung weit verbreitet. Binäre Mathematik ist der Kern der Programmierung, da die gesamte Software, die Sie heute verwenden, eine Kombination aus den Ziffern Null und Eins ist. Alle Daten, mit denen Sie arbeiten, werden im Binärformat gespeichert. Lineare Algebra wird in maschinellen Lernanwendungen, Graphalgorithmen, Quantenberechnungen und mehr verwendet.
Analysis, diskrete Mathematik und Statistik werden häufig zur Problemlösung und zum Entwurf von Algorithmen verwendet. Mathematik verbessert Ihre Rechenfähigkeiten und ist ein wesentlicher Bestandteil des Programmierens.