CodeForces - 872C Maximum splitting 数论,思维
要求对一个数进行加法分解,问最多能分成多少个合数。
问最多的合数,那么结果必然是有 4, 6 , 9 组成
考虑 n % 4的情况即可。
主要是要想到其他合数都可以用4,6,9组成
int main() { int Q = readint(); while (Q--) { ll n = readll(); ll cnt = n / 4; ll m = n % 4; if (m == 1) if (cnt >= 2) cnt--; else cnt = -1; if (m == 2) if (cnt < 1) cnt = -1; if (m == 3) if(cnt >= 3) cnt--; else cnt = -1; if (cnt == -1) puts("-1"); else { Put(cnt); puts(""); } } }