减法和求余
题号:NC236626
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

鸡尾酒的学生丹丹分不清求余和减法,因为他觉得两种运算都是将一个数字变小,所以都差不多。

为了让丹丹能够更好地理解求余和减法,鸡尾酒给了他这样一个问题:

给定 n 个数字,每次有两种操作:

1. 从所有正整数中任选一个数字 ,并将所有数字全部对 x 求余。
2. 从这 n 个数字中任选一些数字,使得它们全部减去一。

问最少进行多少次操作可以让所有数字全部变为 0。

这两种操作都需要“任选”,而丹丹有选择困难症,所以无法解决这一问题,你可以帮帮他吗?

输入描述:

第一行给出一个正整数 ,表示数字的数量。

接下来给出 n 个数字,其中第 i 个数字记作

输出描述:

输出一行一个整数表示答案。
示例1

输入

复制
5
1 3 0 12 10

输出

复制
2

说明

选择x=3,先将所有数字对 3 求余,此时数组变为 [1,0,0,0,1],再选择第一个数字和第五个数字减一,共两次操作可以使得所有数字全部变为 0。
示例2

输入

复制
6
5 20 100 15 5 0

输出

复制
1