Maximum splitting(找规律+思维)

Maximum splitting

 CodeForces - 872C 

You are given several queries. In the i-th query you are given a single positive integer ni. You are to represent ni as a sum of maximum possible number of composite summands and print this maximum number, or print -1, if there are no such splittings.

An integer greater than 1 is composite, if it is not prime, i.e. if it has positive divisors not equal to 1 and the integer itself.

Input

The first line contains single integer q (1 ≤ q ≤ 105) — the number of queries.

q lines follow. The (i + 1)-th line contains single integer ni (1 ≤ ni ≤ 109) — the i-th query.

Output

For each query print the maximum possible number of summands in a valid splitting to composite summands, or -1, if there are no such splittings.

Examples

Input
1
12
Output
3
Input
2
6
8
Output
1
2
Input
3
1
2
3
Output
-1
-1
-1

Note

12 = 4 + 4 + 4 = 4 + 8 = 6 + 6 = 12, but the first splitting has the maximum possible number of summands.

8 = 4 + 4, 6 can't be split into several composite summands.

1, 2, 3 are less than any composite number, so they do not have valid splittings.

题意:给你一个数n,问你他最多能划分为几种几个合数的和 

题解:最小的偶数合数是4,最小的奇数合数是9 

四种情况:

    (1)n%4 == 0:

      全分成4就好了,所以ans = n/4

    (2)n%4 == 1:

      剩下的1要和两个4组合成一个9。

      所以如果n/4 >= 2,ans = n/4 - 1

      否则ans = -1

    (3)n%4 == 2:

      剩下的2要和一个4组合成一个6。

      所以如果n/4 >= 1,ans = n/4

      否则ans = -1

    (4)n%4 == 3:

      剩下的3 = 1 + 2。所以需要三个4,组成一个6和一个9。

      所以如果n/4 >= 3,ans = n/4 - 1

也可以找规律:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int main()
 7 {
 8     int q,n;
 9     cin>>q;
10     while(q--)
11     {
12         scanf("%d",&n);
13         if(n==1||n==2||n==3||n==5||n==7||n==11)
14             printf("-1\n");
15         else
16         {
17             int ans=n/4;
18                 if(n%2==0)
19                     printf("%d\n",ans);
20                 if(n%2==1)
21                     printf("%d\n",ans-1);
22             }
23         }
24 }

 

posted @ 2018-09-10 23:42  *starry*  阅读(202)  评论(0编辑  收藏  举报