#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL INF=1e18;
const int maxn=1e5;
int n;
LL a[maxn+100];
LL b[maxn+100];
int jud(LL s1,LL t1,LL s2,LL t2) //对拍时发现关键点
{
if(s1*t2<=s2*t1) return 1;
return 0;
}
/* sx:通过的某一段,st:通过对应段用的时间
s1/t1<=s2/t2->t2/t1<=s2/s1
t2/t1<=s2/s1
t3/t2<=s3/s2
t4/t3<=s4/t3
左边和右边都很有特点
...->
tn/t1<=sn/s1
tn/tx<=sn/sx (1<=x<=n-1)
尝试正推找不到约束至最小值
倒退:
tn<=sn*tx/sx (1<=x<=n-1)
令 tn(min)=1
tn<=sn*tn-1/sn-1 tn/sn<=tn-1/sn-1 tn/sn*sn-1<=tn-1 求整数解tn-1
tn-1<=sn-1*tn-2/sn-2 tn-1/sn-1<=tn-2/sn-2 tn-1/sn-1*sn-2<=tn-2 依次求
tn-2<=sn-2*tn-3/sn-3 tn-2/sn-2<=tn-3/sn-3 ..
tn-3<=sn-3*tn-4/sn-4 tn-3/sn-3<=tn-4/sn-4 ..
...
满足tn/tx<=sn/sx (1<=x<=n-1)
*/
LL solve()
{
LL t=1;
LL ans=1;
for(int i=n;i>=2;i--)
{
t=t*b[i-2]/b[i-1]+(t*b[i-2]%b[i-1]==0?0:1);
ans=ans+t;
}
return ans;
}
int main()
{
int t,kase=1;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++) {scanf("%lld",&a[i]);}
b[0]=a[1];
for(int i=2;i<=n;i++) {b[i-1]=a[i]-a[i-1];}
printf("Case #%d: %lld\n",kase++,solve());
}
return 0;
}