algorytm.org

Liczby automorficzne



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Liczby automorficzne
Ocena użytkowników:***** / 161
SłabyŚwietny 
Wpisany przez Michał Witaszek, 11 lipca 2013 08:24

Liczbami automorficznymi nazywamy takie liczby, które podniesione do kwadratu zawierają w końcówce samą siebie. Np. 52 = 25, 62 = 36. Ciekawostką jest to że, liczby automorficzne w zapisie dziesiętnym zawsze kończą się na 5 lub 6.
Czy liczba naturalna n o dowolnej podstawie m jest automorficzna można sprawdzić za pomocą następującego równania:
n=n^2 \mod m^k
Gdzie:
n to badana liczba,
m to podstawa liczby,
k oznacza ilość cyfr w liczbie n.

Jeśli powyższe równanie jest prawdziwe dla zadanej liczby naturalnej n oznacza to że, liczba jest automorficzna.

Przykład:
25 w systemie dziesiętnym.
n = 25,
m = 10 (ponieważ liczba jest zapisana w systemie dziesiętnym),
k = 2 (ponieważ liczba została zapisana za pomocą dwóch cyfr – nie należy liczyć ewentualnych zer wiodących!)
25^2 \mod 10^2 = 625 \mod 100 = 25
Wynikiem równania dla n = 25 jest liczba 25, więc jest ona automorficzna (252 = 625).

Prostą metodą możemy znaleźć wartość mk,wystarczy że podstawę m będziemy podnośnic do kolejnej potęgi aż wynik będzie większy lub równy zadanej liczbie n.

Przykład:
n = 25
101 = 10, wynik mniejszy niż 25 – iterujemy dalej;
102 = 100, wynik większy niż 25.

Dostosowując powyższą metodę uzyskujemy pełny algorytm przy pomocy którego, możemy sprawdzić czy zadana liczba naturalna n o dowolnej podstawie m jest automorficzna. Taki algorytm możemy przedstawić za pomocą następującej listy kroków:
Działanie algorytmu można zilustrować za pomocą poniższego schematu.
schemat blokowy - liczba automorficzna

Przykład w JavaScript:

Podaj liczbę:



Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Michał WitaszekC/C++
.cpp
.cpp
***** / 6
Michał WitaszekDelphi/Pascal
.pas
.pas
***** / 0
Michał WitaszekJavaScript
.js
.js
***** / 0
Michał WitaszekJava_Block
.jbf
.jbf
***** / 0
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 05 czerwca 2015 22:35
Komentarze
photo
+1 # adns 2013-07-16 18:13
czy to ma jakies praktyczne zastosownie, czy to tylko ciekawostka?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+5 # Filip666 2014-10-14 20:02
Jak pójdziesz na UMCS na informatykę, to będzie Cię tym Drzewkowski katował... =___="
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz