#54. 「2021 新生杯」子段和 II

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: woruo

题目描述

若取数组 中连续的一段元素组成一个新数组 ,则称 的一个子段。若 不为空(即长度不为 ),则称 的一个非空子段。例如 都是数组 的非空子段,但 不是。

显然,对于一个确定的正整数 ,当一个数组 充分长时,无论其中元素如何取值,它一定至少有一个非空子段的和是 的倍数。请你求出这个数组最小的长度。

输入格式

一行一个正整数 (),表示数组 一定至少有一个非空子段的和是 的倍数。

输出格式

一行一个正整数 ,表示数组 的长度至少是 ,才能使得其一定至少有一个非空子段的和是 的倍数。

样例

样例输入

2

样例输出

2

数据范围与提示

时:数列 没有任何一个非空子段的和是 的倍数。

时:若数列 中至少有一个偶数,该元素即可作为一个和为 的倍数的非空子段。若数列中没有偶数,整个数组即可作为一个和为 的倍数的非空子段。

综上:答案为