Skip to main content
LeetCode 1553, Hard. Topics: Dynamic Programming, Memoization. View on LeetCode. Generate this problem as a practice environment: tested reference solution, 17 parametrized pytest cases, and a playground notebook:

Problem

There are n oranges in the kitchen and you decided to eat some of these oranges every day as follows:
  • Eat one orange.
  • If the number of remaining oranges n is divisible by 2 then you can eat n / 2 oranges.
  • If the number of remaining oranges n is divisible by 3 then you can eat 2 * (n / 3) oranges.
You can only choose one of the actions per day. Given the integer n, return the minimum number of days to eat n oranges.

Examples

Constraints

  • 1 <= n <= 2 * 10^9

Solution

Reference implementation from solution.py on GitHub, full suite in test_solution.py:

Complexity

Tags

NeetCode All.
Last modified on September 7, 2026