Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Ett Armstrong-nummer är ett nyckelbegrepp inom kryptering och dekryptering för datasäkerhet.

Det allmänna konceptet att bearbeta siffrorna i ett nummer är en grundläggande teknik. Du kan lösa många uppgifter med detta tillvägagångssätt, som att summera siffror, få produkten av siffror, räkna siffror och vända ett tal.

Men vad är ett Armstrong-nummer och hur testar man för ett?

Vad är ett Armstrong-nummer?

Ett Armstrong-tal är ett tal vars summa av kuberna av dess siffror är lika med talet i sig. Till exempel är 153 ett Armstrong-tal. Om du tar siffrorna för 153 individuellt och kuber dem:

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

Lägg sedan till resultaten:

1 + 125 + 27

Du får 153, samma som originalnumret.

En algoritm för att hitta ett Armstrong-nummer

Att skriva en algoritm är det första steget för att implementera ett program. Du kan använda algoritmen som referens för att skriva pseudokod och sedan implementera den med ditt önskade programmeringsspråk. En algoritm ger dig den exakta serie instruktioner att följa, eliminerar logiska fel och gör implementeringen enklare.

instagram viewer

Här är algoritmen för att ta reda på om ett tal är Armstrong eller inte:

  1. Deklarera variabler summa, temp, n, r
  2. Ta värdet på n från användaren
  3. Initiera variabelsumman till 0 och ta backup av n som temp = n
  4. Upprepa steg 5 - 7 medan n > 0
  5. r = n % 10
  6. summa = summa + kub för varje siffra (r × r × r)
  7. n = n/10
  8. Om summan är lika med temp, visa "Number är ett Armstrong-tal"
  9. Annars, visa "Number är inte ett Armstrong-nummer"

Pseudokod för implementering av Armstrong-algoritmen

Pseudokod kan vara ett användbart steg för att designa implementeringen av en algoritm. Att skriva pseudokoden hjälper dig att enkelt konvertera den till kod på valfritt programmeringsspråk. Här är pseudokoden för implementeringen av Armstrong-numret:

Armstrong-programmet i C

Observera pseudokoden ovan och konvertera varje påstående till C-kod.

Börja med att importera stdio.h för att utföra in- och utmatningsoperationerna. Deklarera huvud funktion och börja implementera programmets logik. Använda sig av n för att lagra det inmatade numret, r för att lagra de enskilda siffrorna i numret, belopp för att lagra summan av kuberna av siffrorna, och temp för att lagra en kopia av numret.

Använd printf funktion för att be användaren att ange ett nummer. Använd scanf funktion för att läsa numret och lagra det i variabel n. %d är decimalformatsspecifikationen för att ta ett heltal som indata.

Rensa bort alla skräpvärden genom att initialisera summan som noll och ta en säkerhetskopia av n som temp.

#omfatta <stdio.h>

inthuvud()
{
int n, r, summa, temp;
printf("Ange ett nummer: ");
scanf("%d", &n);
summa = 0; temp = n;

Deklarera a medan slinga som löper tills talet är noll eller mindre. Inne i slingan finns en trestegsprocess som du kan använda i olika andra programmeringsuppgifter. De tre stegen är:

  1. Få den individuella siffran i numret genom att ta talets modul med 10. När du delar ett tal med 10 som en helhet, är resten själva den sista siffran. Till exempel, när du dividerar 153 med 10 blir heltalsresultatet 15 och modulen 3.
  2. När du har den individuella siffran kan du utföra önskad operation. För att hitta ett Armstrong-tal är den önskade operationen summan av kuberna av numrets siffror. Ta kuben av siffran r och lägg till den till summavariabeln.
  3. Eliminera den sista siffran i numret genom att dividera den med 10. Vid division med 10 får du kvoten, i detta fall 15.
medan (n > 0) {
r = n % 10;
summa = summa + (r * r * r);
n = n/10;
}

Kontrollera om den erhållna summan är lika med originaltalet. Om de är lika är talet verkligen ett Armstrong-tal, annars är det inte det.

om (temp == summa)
printf("Numret är ett Armstrong-nummer\n");
annan
printf("Numret är inte ett Armstrong-nummer\n");

lämna tillbaka0;
}

Andra tillämpningar av den allmänna algoritmen

Genom att ändra steg två av trestegslogiken ovan kan du implementera en mängd olika program.

1. Summa, produkt av siffror i tal

För att få summan av siffror i ett tal, ersätt helt enkelt raden med:

summa = summa + r;

För produkt, deklarera variabel prod som 1 och ersätt additionssumman med en multiplikationssymbol:

prod = prod * r;

2. Antal siffror i antal

Till räkna siffrorna i ett tal, initiera helt enkelt en variabelräkning till noll, utelämna steg ett och inkrementera det tills n är lika med noll. Implementeringen av slingan kommer att se ut så här:

medan (n > 0) {
räkna++;
n = n/10;
}

3. Omvänd siffra, palindromnummer

För att vända ett tal, initiera ett variabelt varv till ett och addera det efter att ha multiplicerat med tio:

varv = (varv * 10) + r;

När du får baksidan av ett nummer, jämför det med kopian av själva originalnumret. Om det omvända talet är lika med talet i sig är det ett palindromtal.

4. Minsta och största siffran i ett nummer

Initiera en variabel min som nio och jämför den med siffran som extraherats från steg ett för att hitta den minsta siffran i ett tal. Du kan implementera det som:

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

På samma sätt, initiera en variabel max med noll och jämför den med den extraherade siffran för att hitta den största siffran i ett tal. Du kan implementera det som:

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

Så här kan du hitta de största och minsta siffrorna i ett tal.

5. Specialnummer

Det finns många andra tal, som ett Armstrong-tal, som du kan beräkna. Dessa inkluderar neonnummer, automorft nummer, Krishnamurthy-nummer, buzznummer, perfekt nummer, vänskapligt nummer och tvillingprimtal.

Programmering och matematik

Matematik används flitigt i programmering. Binär matematik är kärnan i programmering då all programvara du använder idag är en kombination av siffrorna noll och ett. All data du arbetar med lagras i binärt format. Linjär algebra används i maskininlärningsapplikationer, grafalgoritmer, kvantberäkning och mer.

Kalkyl, diskret matematik och statistik används ofta i problemlösning och algoritmdesign. Matematik förbättrar din beräkningsfärdighet och är en viktig del av programmering.