CF870C Maximum splitting

题目描述

给定若干查询,第 $i$ 个查询给定一个正整数 $n_i$。你需要将 $n_i$ 表示为最多数量的合数加数之和,并输出该最大加数数量。如果不能进行这样的拆分,输出 $-1$。 大于 $1$ 的整数是合数,当且仅当它不是质数,也就是说它有除了 $1$ 和自身之外的正因数。

输入格式

第一行包含一个整数 $q$($1 \leq q \leq 10^5$),表示查询数量。 接下来有 $q$ 行,第 $i+1$ 行包含一个正整数 $n_i$($1 \leq n_i \leq 10^9$),为第 $i$ 个查询。

输出格式

对于每个查询,输出一个整数,表示将该数拆分为合数加数的最大可能数量;如果不能进行拆分,输出 $-1$。

说明/提示

例如,$12=4+4+4=4+8=6+6=12$,但第一种拆分方式有最多的加数数量。 $8=4+4$;而 $6$ 不能拆分成多个合数加数。 $1,2,3$ 都小于任意合数,所以它们没有有效的拆分方式。 由 ChatGPT 5 翻译