Pokaż wyniki od 1 do 3 z 3
Algorytm matematyczny.
  1. #1
    Świeżak
    Dołączył
    03.02.2009
    Posty
    1
    Wątków
    1
    Siła reputacji
    7

    Domyślnie Algorytm matematyczny.

    Hej.
    Mam za zadanie napisać program, który sprawdza, czy liczba kończy się swoim pierwiastkiem. Wszystko jest łatwe, jeśli chodzi o małe liczby. Np. 36 kończy się swoim pierwiastkiem, bo 6 podniesione do kwadratu daje 36 Problem zaczyna się przy wyższych liczbach. Np. 390 625. 625 podniesione do kwadratu daje właśnie tą liczbę. Proszę o pomoc i nadsyłanie pomysłów. Program będzie powstawał w ADA 95. Ale każdy pomysł, każda pomoc i w każdym języku się przydadzą


    pozdrawiam Szymon
    Uwaga: To jest stary temat
    Ta dyskusja jest starsza niż 90 dni. Informacje w niej zawarte mogą już nie być aktualne

  2. #2
    Aktywny Użytkownik Awatar matek3005
    Dołączył
    19.10.2008
    Posty
    363
    Wątków
    3
    Siła reputacji
    11

    Domyślnie Odp: Algorytm matematyczny.

    Nie wiem czy to będzie dobrze ale zasugeruję pewne proste rozwiązanie, które nasunęło mi się zaraz na początku.
    Aby wytłumaczyć algorytm, posłużę się pewną obserwacją. Mianowicie:
    przykładowo mamy kolejno liczby:
    1 * 1 = 1
    9 * 9 = 81
    10 * 10 = 100
    99 * 99 = 9801
    100 * 100 = 10000
    999 * 999 = 998001
    1000 * 1000 = 1000000
    9999 * 9999 = 99980001

    zauważmy teraz, że ilość cyfr iloczynu (w tym wypadku kwadratu) czynników, jest równa maksymalnie sumie ilości cyfr tych czynników bądź tej sumie poniejszonej o 1. Jaśniej:
    dla liczb dwucyfrowych ich kwadrat będzie posiadał minimalnie 3 cyfry, a maksymalnie 4 cyfry. Dla liczy 4 cyfrowych ich kwadrat będzie składał się z 7 lub 8 cyfr (4 + 4 - 1 lub 4 + 4). Wykorzystując tą wiedzę można skonstruować algorytm który dla danej liczby, podanej na wejściu sprawdzi jej długość i na podstawie tego wyciągnie liczbę powstałą z drugiej połowy jej cyfr, uwzględniając przy tym czy ich ilośc jest parzysta czy nieparzysta, którą następnie podniesie do kwadratu. Uogólniając wywód:
    przykład 1) liczba "abcdefgh" (8 cyfr), sprwadzasz czy "efgh" * "efgh" = "abcdefgh"
    przykład 2) "abcdefg" (7 cyfr), sprwadzasz czy "defg" * "defg" = "abcdefg"
    dlaczego w przykładzie drugij sprawdzam "defg", a nie "efg"? Ponieważ nigdy liczba trzycyfrowa podniesiona do kwadratu nie da liczby siedmiocyfrowej. Nie wiem czy ten algorytm jest słuszny, ale kombinowałbym coś w ten deseń

  3. #3
    Użytkownik
    Dołączył
    31.10.2011
    Posty
    21
    Wątków
    2
    Siła reputacji
    2

    Domyślnie Odp: Algorytm matematyczny.

    ładuj to do tablicy licz ile jest i sprawdzaj tyle ile jest liczb od końca no i porównuj nie traktuj ich juz jak liczb tylko znaki do porównania