Book a free demo

Coding Grandmaster ยท project 10 of 46 ยท premium, free for now

Powers in a flash

Write power_steps(base, exp) that returns (result, multiplications) using repeated squaring, and pow_mod(base, exp, m) that returns base ** exp % m the same way (without ever building the full power).

Learn

To compute 3^100 you do not need 99 multiplications. Square repeatedly: 3, 3ยฒ, 3โด, 3โธ and so on, and multiply together only the squares that match the 1s in the exponent's binary form. That is about 7 + a few steps instead of 99. Doing it modulo m keeps the numbers small, which is how computers handle huge numbers in cryptography.

Your task

Write power_steps(base, exp) that returns (result, multiplications) using repeated squaring, and pow_mod(base, exp, m) that returns base ** exp % m the same way (without ever building the full power).

Stretch challenge

How many multiplications does 3 ** 1000 need with this method?

โ† Digits and casting out ninesPerfect numbers โ†’

Python
Press Run to see what your program prints.

More in this module

Keep going in Coding Grandmaster

Practise the idea

๐Ÿ’ก Play Binary Bits

Switch bit values to make the decimal number shown on screen.

Play now

FAQ

Powers in a flash: common questions

I am stuck. What can I do?

Press Hint for a nudge, read the message next to each goal, and compare your code with the lesson text. If you still need it, Show answer reveals a model solution. Try to type it yourself rather than copy it.

Does my work get saved?

Your ticks and XP are saved in this browser, and in your account if you log in. The code you type is not stored on a server.

Start a conversation

Enjoying coding? Meet a teacher.

Tell us the learner's age, country and what they would like to build, and we will suggest a class. A parent or guardian can make the enquiry.

  • Tell us the learnerโ€™s age or grade and goals
  • Weโ€™ll suggest a suitable class or learning path
  • Weโ€™ll confirm format, timing and fees with a parent or guardian

For a childโ€™s class, please have a parent or guardian send the enquiry. Avoid sharing passwords or sensitive personal details.

Weโ€™ll use your details only to respond to this request.

Play it, don't just read it

Write some code right now

Free games that need no sign-up. Pick one and play for five minutes.

All free games โ†’
Chat on WhatsApp
Esc

Try