{"record":{"id":"aa429a0e41f7cc08","repo":"TheAlgorithms/Python","slug":"input-value-of-number-number-must-be-an-intege","errorCode":null,"errorMessage":"Input value of [number={number}] must be an integer","messagePattern":"Input value of \\[number=(.+?)\\] must be an integer","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"maths/juggler_sequence.py","lineNumber":44,"sourceCode":"    [3, 5, 11, 36, 6, 2, 1]\n    >>> juggler_sequence(5)\n    [5, 11, 36, 6, 2, 1]\n    >>> juggler_sequence(10)\n    [10, 3, 5, 11, 36, 6, 2, 1]\n    >>> juggler_sequence(25)\n    [25, 125, 1397, 52214, 228, 15, 58, 7, 18, 4, 2, 1]\n    >>> juggler_sequence(6.0)\n    Traceback (most recent call last):\n        ...\n    TypeError: Input value of [number=6.0] must be an integer\n    >>> juggler_sequence(-1)\n    Traceback (most recent call last):\n        ...\n    ValueError: Input value of [number=-1] must be a positive integer\n    \"\"\"\n    if not isinstance(number, int):\n        msg = f\"Input value of [number={number}] must be an integer\"\n        raise TypeError(msg)\n    if number < 1:\n        msg = f\"Input value of [number={number}] must be a positive integer\"\n        raise ValueError(msg)\n    sequence = [number]\n    while number != 1:\n        if number % 2 == 0:\n            number = math.floor(math.sqrt(number))\n        else:\n            number = math.floor(\n                math.sqrt(number) * math.sqrt(number) * math.sqrt(number)\n            )\n        sequence.append(number)\n    return sequence\n\n\nif __name__ == \"__main__\":\n    import doctest\n","sourceCodeStart":26,"sourceCodeEnd":62,"githubUrl":"https://github.com/TheAlgorithms/Python/blob/f5988cc09713315817df6a7e327e258013a94440/maths/juggler_sequence.py#L26-L62","documentation":"Raised by juggler_sequence in maths/juggler_sequence.py when number is not an int. The juggler sequence iterates n -> floor(sqrt(n)) for even n and floor(n^(3/2)) for odd n until reaching 1, and the parity branch (number % 2) plus the exact-integer invariant only make sense for ints; a TypeError with the offending value in the message is raised before the loop. Note the check is isinstance-only, so 6.0 fails even though it equals an integer.","triggerScenarios":"Calling juggler_sequence(6.0), juggler_sequence('9'), or juggler_sequence(3+0j). Any non-int triggers the raise; True/False pass (bool subclasses int) and True yields [1].","commonSituations":"Numeric results from float math or numpy scalars flowing in unconverted; JSON-parsed numbers; generators producing floats after division.","solutions":["Convert to int at the call site: juggler_sequence(int(number)).","Validate integrality first if silently truncating is wrong: if number != int(number): raise.","Convert numpy scalars with int(number) since np.int64 may fail the isinstance check."],"exampleFix":"// before\nseq = juggler_sequence(n)  # n is 6.0 from float math\n\n// after\nseq = juggler_sequence(int(n))","handlingStrategy":"type-guard","validationCode":"if not isinstance(number, int):\n    if isinstance(number, float) and number.is_integer():\n        number = int(number)\n    else:\n        raise TypeError(f\"need integer, got {number!r}\")\nseq = juggler_sequence(number)","typeGuard":"def is_int_value(v) -> bool:\n    return isinstance(v, int) or (isinstance(v, float) and v.is_integer())","tryCatchPattern":"try:\n    seq = juggler_sequence(n)\nexcept TypeError:\n    seq = juggler_sequence(int(n))","preventionTips":["Convert numpy scalars and whole floats to int before number-theory calls","Keep loop counters as native ints"],"tags":["math","sequences","juggler","typeerror","validation"],"backgroundTag":null,"analyzedSha":"f5988cc09713315817df6a7e327e258013a94440","analyzedAt":"2026-08-14T17:30:07.041Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}