Maszyna RAM

1

cześć,

może ktoś pomóc zapisać w maszynie ram takie zadanie?

Napisz program, który sprawdzi, czy dana liczba jest nietrywialną potęgą, a więc taką liczbą, która jest równa a^n dla pewnych liczb naturalnych a i n>1. W przypadku pozytywnej odpowiedzi, program powinien wypisać 1, w przeciwnym przypadku - 0.

1
  1. Liczba wejściowa to x
  2. Iterujesz po liczbach 2...x i szukasz dzielnika, czyli liczby dla której x % i == 0
  3. Następnie dzielisz x przez znaleziony dzielnik i aż nie dojdziesz do 0 i sprawdzasz czy żadne dzielenie nie miało reszty

A tą maszynę RAM serio porzuć, bo to dead end. Serio, do niczego ci sie to nie przyda. Pseudokod, "prawdziwy" asembler albo nawet maszyna turinga będą 100 razy bardziej uzyteczne.

0

jeszcze chwilę posiedzę w Maszynie:-) ale nie długo

Co do zadania, mogę prosić nieco jaśniej bo nie wiem czy rozumiem.

Wpisuję liczbę.
Robię pętlę, która szuka dzielnika z 0 reszty.
Dzielę moją liczbę przez ten dzielnik tak długo aż nie otrzymam 0 i sprawdzam dzielenia z resztą. (czyli pętla). // Jak sprawdzać kolejne wyniki dzielenia?

1

Operacjami mod i div? Albo jeśli nie masz mod to możesz zrobić div a potem sprawdzić czy wynik pomnożony przez dzielnik d iaje liczbę wejściową.

0

okej, poddaje się:)
nie wiem jak to zapisać w maszynie :(

0

Ostatnie pytanie o Maszynę RAM :-)

Dana jest liczba n (0 ≤ n ≤ 10^15).
Jeżeli n jest sześcianem pewnej liczby całkowitej k, należy wypisać k; w przeciwnym wypadku należy wypisać -1.

Może ktoś coś podpowie? :-)

0

(10^15)^(1/3) to raptem 100 000, więc możesz śmiało przeiterować od 1 do 100 000 i sprawdzać czy i^3 = k ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1