题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1836
//C++代码
#include<iostream>
using namespace std;
int n,m,ans,a[11];
int gcd(int a,int b){
return b==0? a:gcd(b,a%b);
}
int lcm(int a,int b){
return a/gcd(a,b)*b;
}
void dfs(int x,int k,int tot){
if(x>0) ans+=k*m/tot;
for(int i=x;i<n;i++) dfs(i+1,-k,lcm(a[i],tot));
}
int main(){
while(cin>>n>>m){
for(int i=0;i<n;i++) cin>>a[i];
ans=0;
dfs(0,-1,1);
cout<<ans<<endl;
}
return 0;
}