from typing import Tuple


def _calculate_division(
        dividend: int,
        divisor: int,
        max_decimal_places: int = int(1e6)
) -> Tuple[str, str, str]:
    """For given integer `dividend` and `divisor`, calculate the division `dividend / divisor`.
    The decimal fraction part is made up of a fixed starting sequence and a recurring cycle.

    Example:
    1/6 (dividend=1, divisor=6) -> ('0', '1', '6') meaning 0.166666...
    """
    integer_part = str(dividend // divisor)
    remainder = dividend % divisor

    idx = max_decimal_places
    decimal_fraction_parts = []
    while remainder != 0 and len(decimal_fraction_parts) < max_decimal_places:
        remainder *= 10
        decimal_place = str(remainder // divisor)
        remainder %= divisor
        try:
            idx = decimal_fraction_parts.index((decimal_place, remainder))
            break
        except ValueError:
            decimal_fraction_parts.append((decimal_place, remainder))

    decimal_fraction = ''.join(str(decimal_place) for decimal_place, _ in decimal_fraction_parts)
    decimal_fraction_start = decimal_fraction[:idx]
    decimal_fraction_recurring_cycle = decimal_fraction[idx:]
    return integer_part, decimal_fraction_start, decimal_fraction_recurring_cycle