type IsPrime< MaybePrime extends number, NumAsTuple extends unknown[] = [], RemainderAsTuple extends unknown[] = NumAsTuple, > = MaybePrime extends NumAsTuple["length"] ? NumAsTuple["length"] extends RemainderAsTuple["length"] ? NumAsTuple["length"] extends (1 | 2 | 3 | 4 | 5 | 6) ? NumAsTuple["length"] extends (1 | 2 | 3 | 5) ? true : false : NumAsTuple extends [infer _, infer _, infer _, infer _, infer _, infer _, ...infer Rest] ? IsPrime<MaybePrime, NumAsTuple, Rest> : false : RemainderAsTuple["length"] extends (1 | 2 | 3 | 4 | 5 | 6) ? RemainderAsTuple["length"] extends (1 | 5) ? true : false : RemainderAsTuple extends [infer _, infer _, infer _, infer _, infer _, infer _, ...infer Rest] ? IsPrime<MaybePrime, NumAsTuple, Rest> : false : IsPrime<MaybePrime, [...NumAsTuple, 1]>;
[1]: https://www.typescriptlang.org/play?#code/C4TwDgpgBAkgzgBQE4...