CF870C.Maximum splitting

普及-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given several queries. In the i-th query you are given a single positive integer n__i. You are to represent n__i 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.

你将收到若干查询。在第 ii 个查询中,你会得到一个正整数 nin_i。你需要将 nin_i 表示为尽可能多的合数之和,并输出这个最大数量;如果不存在这样的拆分,则输出 −1-1。

大于 1 的整数称为合数,当且仅当它不是质数,即它存在不等于 1 和其自身的正因数。

输入格式

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 n__i (1 ≤ n__i ≤ 109) — the i-th query.

第一行包含一个整数 qq(1≤q≤1051 \le q \le 10^5)—— 查询的个数。

接下来有 qq 行。第 (i+1)(i + 1) 行包含一个整数 nin_i(1≤ni≤1091 \le n_i \le 10^9)—— 第 ii 个查询。

输出格式

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.

对于每个查询,输出在合法的合数拆分中最多可能的加数个数;若不存在这样的拆分,则输出 −1-1。

输入输出样例

  • 输入#1

    1
    12

    输出#1

    3
  • 输入#2

    2
    6
    8

    输出#2

    1
    2
  • 输入#3

    3
    1
    2
    3

    输出#3

    -1
    -1
    -1

说明/提示

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.

12 = 4 + 4 + 4 = 4 + 8 = 6 + 6 = 12,但第一种拆分方式具有最多可能的加数个数。

8 = 4 + 4,而 6 无法被拆分为若干个合数之和。

1、2、3 均小于任意合数,因此它们均不存在有效的拆分。

输入解题思路,AI测评打分。不知道怎么写?

首页