Loading

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("");
        }
    }
}

 

posted @ 2020-08-08 09:52  MQFLLY  阅读(217)  评论(0编辑  收藏  举报