Az Armstrong-szám kulcsfontosságú fogalom az adatbiztonság titkosítása és visszafejtése terén.
A számjegyek feldolgozásának általános koncepciója alapvető technika. Ezzel a megközelítéssel számos feladatot megoldhat, például számjegyek összegzését, számjegyek szorzatának kiszámítását, számjegyek számlálását és egy szám megfordítását.
De mi az Armstrong-szám, és hogyan lehet tesztelni egyet?
Mi az Armstrong-szám?
Az Armstrong-szám olyan szám, amelynek számjegyeinek kockáinak összege megegyezik magával a számmal. Például a 153 egy Armstrong-szám. Ha a 153-as számjegyeket egyenként veszed, és kockára vágod:
(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)
Ezután add hozzá az eredményeket:
1 + 125 + 27
153-at kapsz, ami megegyezik az eredeti számmal.
Algoritmus az Armstrong-szám megtalálásához
Az algoritmus megírása minden program megvalósításának első lépése. Az algoritmust referenciaként használhatja pszeudokód írásához, majd megvalósíthatja azt a kívánt programozási nyelv segítségével. Egy algoritmus megadja a követendő utasítások pontos sorozatát, kiküszöbölve a logikai hibákat és egyszerűbbé téve a megvalósítást.
Íme az algoritmus annak megállapítására, hogy egy szám Armstrong-e vagy sem:
- Sum, temp, n, r változók deklarálása
- Vegye ki az n értékét a felhasználótól
- Inicializálja az összeg változót 0-ra, és mentse n értékét temp = n értékre
- Ismételje meg az 5–7. lépéseket, miközben n > 0
- r = n % 10
- összeg = minden számjegy összege + kocka (r × r × r)
- n = n/10
- Ha az összeg egyenlő a hőmérséklettel, jelenítse meg a „Szám egy Armstrong-szám”
- Ellenkező esetben jelenítse meg a „A szám nem Armstrong-szám”
Pszeudokód az Armstrong-algoritmus megvalósításához
A pszeudokód hasznos lépés lehet egy algoritmus megvalósításának megtervezésében. A pszeudokód megírása segít abban, hogy bármely programozási nyelven könnyen kóddá alakítsa. Íme az Armstrong-szám megvalósításának pszeudokódja:
Az Armstrong-program C
Figyelje meg a fenti pszeudokódot, és alakítsa át az egyes utasításokat C kódra.
Kezdje az importálással stdio.h a bemeneti és kimeneti műveletek végrehajtásához. Nyilatkozni a fő- funkciót, és kezdje el megvalósítani a program logikáját. Használat n a bemeneti szám tárolásához, r a szám egyes számjegyeinek tárolására, összeg a számjegyek kockáinak összegének tárolására, és hőm hogy tárolja a szám másolatát.
Használja a printf funkciót, amely megkéri a felhasználót egy szám bevitelére. Használja a scanf függvény a szám beolvasásához és változóban tárolásához n. %d a decimális formátum megadója, amely egész számot vesz be bemenetként.
Töröljön ki minden hulladék értéket úgy, hogy az összeget nullára inicializálja, és készítsen biztonsági másolatot az n értékről tempként.
#beleértve <stdio.h>
intfő-()
{
int n, r, összeg, hőm;
printf("Kérjük, írjon be egy számot: ");
scanf("%d", &n);
összeg = 0; hőmérséklet = n;
Nyilatkozni a míg ciklus, amely addig fut, amíg a szám nulla vagy kisebb lesz. A hurkon belül egy három lépésből álló folyamat található, amelyet számos más programozási feladatban használhat. A három lépés a következő:
- Kapja meg a szám egyedi számjegyét úgy, hogy a szám modulusát 10-zel veszi. Ha bármelyik számot elosztja 10-zel, a maradék maga az utolsó számjegy. Például, ha elosztja 153-at 10-zel, az egész eredmény 15, a modulus pedig 3.
- Ha megvan az egyedi számjegy, elvégezheti a kívánt műveletet. Armstrong-szám kereséséhez a kívánt művelet a szám számjegyeiből álló kockák összege. Vegyük az r számjegy kockáját, és adjuk hozzá az összeg változóhoz.
- Törölje ki a szám utolsó számjegyét úgy, hogy elosztja 10-zel. 10-zel osztva megkapjuk a hányadost, ebben az esetben a 15-öt.
míg (n > 0) {
r = n % 10;
összeg = összeg + (r * r * r);
n = n/10;
}
Ellenőrizze, hogy a kapott összeg megegyezik-e az eredeti számmal. Ha egyenlők, a szám valóban Armstrong-szám, egyébként nem.
ha (hőmérséklet == összeg)
printf("A szám egy Armstrong-szám\n");
más
printf("A szám nem Armstrong-szám\n");
Visszatérés0;
}
Az általános algoritmus egyéb alkalmazásai
A fent látható háromlépéses logika második lépésének megváltoztatásával számos programot valósíthat meg.
1. Összeg, számjegyek szorzata
Egy szám számjegyeinek összegének kiszámításához egyszerűen cserélje ki a sort a következőre:
összeg = összeg + r;
A szorzatnál deklarálja a prod változót 1-nek, és cserélje ki az összeadási összeget szorzójelre:
prod = prod * r;
2. Számjegyek száma
Nak nek megszámolni egy szám számjegyeit, egyszerűen inicializálja a változók számát nullára, hagyja ki az első lépést, és növelje addig, amíg n nem egyenlő nullával. A hurok megvalósítása így fog kinézni:
míg (n > 0) {
count++;
n = n/10;
}
3. Szám fordítottja, palindróm szám
Egy szám megfordításához inicializáljon egy változó fordulatszámot eggyel, és adja hozzá tízzel való szorzás után:
fordulat = (fordulat * 10) + r;
Miután megkapta egy szám fordítottját, hasonlítsa össze magát az eredeti szám másolatával. Ha a fordított szám megegyezik magával a számmal, akkor az egy palindrom szám.
4. Egy szám legkisebb és legnagyobb számjegye
Inicializáljon egy min változót kilencre, és hasonlítsa össze az első lépésből kivont számjegygel, hogy megtalálja a szám legkisebb számjegyét. Megvalósíthatja a következőképpen:
ha (r < min) {
min = r;
}
Hasonlóképpen inicializáljon egy max változót nullával, és hasonlítsa össze a kivont számjeggyel, hogy megtalálja a szám legnagyobb számjegyét. Megvalósíthatja a következőképpen:
ha (r > max) {
max = r;
}
Így lehet megtalálni egy szám legnagyobb és legkisebb számjegyei.
5. Különleges számok
Sok más szám is kiszámolható, például egy Armstrong-szám. Ezek közé tartozik a neonszám, az automorf szám, a Krishnamurthy-szám, a buzz-szám, a tökéletes szám, a baráti szám és az ikerprímszám.
Programozás és matematika
A matematikát széles körben használják a programozásban. A bináris matematika a programozás magja, mivel a ma használt összes szoftver a nulla és az egyes számjegyek kombinációja. Minden adat, amellyel dolgozik, bináris formátumban kerül tárolásra. A lineáris algebrát gépi tanulási alkalmazásokban, gráfalgoritmusokban, kvantumszámításokban és egyebekben használják.
A számításokat, a diszkrét matematikát és a statisztikákat széles körben használják a problémamegoldásban és az algoritmusok tervezésében. A matematika fejleszti a számítási készségeket, és a programozás elengedhetetlen része.