Maszyna ram program- niemal silnia

0

Hej, dopiero uczę sie programowania. Mam problem z zadaniami z Maszyny RAM. Umiem wykonywać proste zadania, te nieco trudniejsze mi nie wychodzą, mimo że cos zawsze w głowie świta. Ma ktoś pomysł na zadanie: Dane: liczba naturalna n (1≤n≤16).
Wynik: iloczyn wszystkich liczb naturalnych nieparzystych, nie większych od n oraz Napisz program, który oblicza, ile liczb w danym ciągu liczb naturalnych jest potęgami liczby 2. Bardzo proszę o pomoc.

0

Ale gdzie dokładnie masz problem?

  1. Robisz pętlę od 1 do n przesuwając się co 2 (1,3,5,7...) i mnożysz te kolejne liczby przez siebie.
  2. Dla każdej liczby w ciągu sprawdzasz czy jest potęgą 2 i jeśli tak to zwiększasz licznik. Sprawdzenie czy coś jest potęgą 2 możesz zrobić liczac logarytm przy podstawie z 2, albo po prostu w pętli dzieląc daną liczbę przez 2 wielokrotnie aż nie spadnie do 1 i sprawdzając za każdym razem czy reszta z dzielenia przez 2 wynosi 0.

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