#codefestivalfinalf. [code_festival_final_f]誤情報
[code_festival_final_f]誤情報
问题文
高桥君是一位超级工程师。最近,他发明了一个名为"欧几里得君"的机器人,可以告诉他两个正整数的最大公约数。
为了测试欧几里得君的性能,高桥君准备了一个由N个正整数组成的整数序列A(从1开始索引)。
他让欧几里得君求得Ai和Ai+1的最大公约数,其中1≤i≤N。注意,AN+1=A1。
欧几里得君报告给他的结果是Bi,即Ai和Ai+1的最大公约数。
高桥君觉得Bi中可能存在一些矛盾,所以他想根据整数序列A进行修改。然而,不幸的是,他丢失了整数序列A的数据。
这样一来,他就无法正确地评估欧几里得君的性能了。
然而,作为一位超级工程师,高桥君制作的欧几里得君不太可能报告出错的次数很多。
因此,高桥君决定将B中包含的错误信息数量中的最小值作为测量结果。
请计算B中包含的错误信息数量的最小值。
输入
输入通过标准输入给出,具体格式如下:
N B1 B2 B3 ... BN
- 第1行为整数N,表示序列A的元素个数(满足1≤N≤10^5);
- 第2行至第N行每行包含一个整数Bi,表示欧几里得君报告的结果。
输出
请输出欧几里得君报告的错误信息数量的最小值,输出末尾需要换行。
示例输入1
3
4
2
4
示例输出1
1
如果假设B1和B3是正确的,那么A2和A3都是4的倍数,所以B2≥4,与之前的结果矛盾。如果B2是错误的,就不存在矛盾了,所以答案是1。
示例输入2
10
3
1
4
1
5
9
2
6
5
3
示例输出2
1
如果将B8移除,就不会有矛盾了。可以考虑的一个A的例子是[21, 39, 44, 28, 65, 45, 18, 34, 25, 15]。
示例输入3
10
2
7
1
8
2
8
1
8
2
8
示例输出3
2