Πρόβλημα
Νάρκισσος (ή αριθμός Armstrong) ονομάζεται ένας αριθμός που είναι ίσος με το άθροισμα των ψηφίων του υψωμένο το καθένα στο πλήθος των ψηφίων του. Για παράδειγμα, οι αριθμοί :
153 = 13 + 53 + 33
370 = 33 + 73 + 03
Να αναπτύξετε αλγόριθμο που υπολογίζει τους 88 συνολικά Νάρκισσους αριθμούς που υπάρχουν.
ΛΥΣΗ
Αλγόριθμος ναρκισσος
πλ_ναρ ← 10
χ ← 11
Όσο πλ_ναρ ≠ 88 επανάλαβε
ν ← 1
Όσο (χ div Α_Μ(10^ν)) ≥ 10 επανάλαβε
ν ← ν + 1
Τέλος_επανάληψης
Σ ← 0
ω ← χ
Για Ι από 1 μέχρι ν + 1
Σ ← Σ + (ω mod 10)^(ν + 1)
ω ← ω div 10
Τέλος_επανάληψης
Αν χ = Α_Μ(Σ) τότε
Γράψε χ
πλ_ναρ ← πλ_ναρ + 1
Τέλος_αν
χ ← χ + 1
Τέλος_επανάληψης
Τέλος ναρκισσος
Παρακάτω φαίνονται οι 88 Νάρκισσοι αριθμοί.
Πλήθος ψηφίων | Αριθμοί |
1 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
3 | 153, 370, 371, 407 |
4 | 1634, 8208, 9474 |
5 | 54748, 92727, 93084 |
6 | 548834 |
7 | 1741725, 4210818, 9800817, 9926315 |
8 | 24678050, 24678051, 88593477 |
9 | 146511208, 472335975, 534494836, 912985153 |
10 | 4679307774 |
11 | 32164049650, 32164049651, 40028394225, 42678290603, 44708635679, 49388550606, 82693916578, 94204591914 |
14 | 28116440335967 |
16 | 4338281769391370, 4338281769391371 |
17 | 21897142587612075, 35641594208964132, 35875699062250035 |
19 | 1517841543307505039, 3289582984443187032, 4498128791164624869, 4929273885928088826 |
20 | 63105425988599693916 |
21 | 128468643043731391252, 449177399146038697307 |
23 | 21887696841122916288858, 27879694893054074471405, 27907865009977052567814, 28361281321319229463398, 35452590104031691935943 |
24 | 174088005938065293023722, 188451485447897896036875, 239313664430041569350093 |
25 | 1550475334214501539088894, 1553242162893771850669378, 3706907995955475988644380, 3706907995955475988644381, 4422095118095899619457938 |
27 | 121204998563613372405438066, 121270696006801314328439376, 128851796696487777842012787, 174650464499531377631639254, 177265453171792792366489765 |
29 | 14607640612971980372614873089, 19008174136254279995012734740, 19008174136254279995012734741, 23866716435523975980390369295 |
31 | 1145037275765491025924292050346, 1927890457142960697580636236639, 2309092682616190307509695338915 |
32 | 17333509997782249308725103962772 |
33 | 186709961001538790100634132976990, 186709961001538790100634132976991 |
34 | 1122763285329372541592822900204593 |
35 | 12639369517103790328947807201478392, 12679937780272278566303885594196922 |
37 | 1219167219625434121569735803609966019 |
38 | 12815792078366059955099770545296129367 |
39 | 115132219018763992565095597973971522400, 115132219018763992565095597973971522401 |