最大公因数
题号:NC232583
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

雯雯沉迷学习数学无法自拔,他在闭关修炼中遇到了难题,聪明的你能帮他解答吗?
现在给你一个N个数的序列P,定义X为这N个数的最大公因数,你可以进行无限次操作,每次操作选择一组(L,R) ,使得P_L-1,每次操作产生新的序列P。请问所有可能产生的P对应的X最多有多少个。AC者可凭RP获得雯雯签名照一张。
定义:A是序列P的一个公因数当且仅当序列P的每一个元素都能被A整除,且
注意:本题规定任何正整数都是0的公因数。

输入描述:

第一行包含一个数N,其中

第二行为长度为N的一个序列,其中序列元素P满足

输出描述:

输出包括一个整数,表示所有序列产生的最大公因数的个数。
示例1

输入

复制
3
1 1 2

输出

复制
3

说明

第一次操作,L=1,R=2,操作后P=0,2,2,此时P的最大公因数为2

第二次操作,L=2,R=3,操作后P=0,1,3,此时P的最大公因数为1

第三次操作,L=2,R=3,操作后P=0,0,4,此时P的最大公因数为4

经过若干次操作后,序列P产生的最大公因数为124,共3个。