CF1768A.Greatest Convex

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given an integer kk. Find the largest integer xx, where 1≤x<k1 \le x \lt k, such that x!+(x−1)!†x! + (x - 1)!^\dagger is a multiple of ‡^\ddagger kk, or determine that no such xx exists.

†^\dagger y!y! denotes the factorial of yy, which is defined recursively as y!=y⋅(y−1)!y! = y \cdot (y-1)! for y≥1y \geq 1 with the base case of 0!=10! = 1. For example, 5!=5⋅4⋅3⋅2⋅1⋅0!=1205! = 5 \cdot 4 \cdot 3 \cdot 2 \cdot 1 \cdot 0! = 120.

‡^\ddagger If aa and bb are integers, then aa is a multiple of bb if there exists an integer cc such that a=b⋅ca = b \cdot c. For example, 1010 is a multiple of 55 but 99 is not a multiple of 66.

给你一个整数 kk。请找出满足 1≤x<k1 \le x < k 的最大整数 xx,使得 x!+(x−1)!†x! + (x - 1)!^\dagger 是 ‡ k^\ddagger\,k 的倍数;若不存在这样的 xx,则判定其不存在。

†^\dagger y!y! 表示 yy 的阶乘,递归定义为:当 y≥1y \geq 1 时,y!=y⋅(y−1)!y! = y \cdot (y-1)!,且规定 0!=10! = 1。例如,5!=5⋅4⋅3⋅2⋅1⋅0!=1205! = 5 \cdot 4 \cdot 3 \cdot 2 \cdot 1 \cdot 0! = 120。

‡^\ddagger 若 aa 和 bb 均为整数,则称 aa 是 bb 的倍数,当且仅当存在整数 cc,使得 a=b⋅ca = b \cdot c。例如,1010 是 55 的倍数,但 99 不是 66 的倍数。

输入格式

The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. The description of test cases follows.

The only line of each test case contains a single integer kk (2≤k≤1092 \le k \le 10^9).

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)—— 测试用例的数量。随后是各测试用例的描述。

每个测试用例仅有一行,包含一个整数 kk(2≤k≤1092 \le k \le 10^9)。

输出格式

For each test case output a single integer — the largest possible integer xx that satisfies the conditions above.

If no such xx exists, output −1-1.

对于每个测试用例,输出一个整数——满足上述条件的最大可能整数 xx。

若不存在这样的 xx,则输出 −1-1。

输入输出样例

  • 输入#1

    4
    3
    6
    8
    10

    输出#1

    2
    5
    7
    9

说明/提示

In the first test case, 2!+1!=2+1=32! + 1! = 2 + 1 = 3, which is a multiple of 33.

In the third test case, 7!+6!=5040+720=57607! + 6! = 5040 + 720 = 5760, which is a multiple of 88.

在第一个测试用例中,2!+1!=2+1=32! + 1! = 2 + 1 = 3,是 33 的倍数。

在第三个测试用例中,7!+6!=5040+720=57607! + 6! = 5040 + 720 = 5760,是 88 的倍数。

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

首页