代码如下:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define MOD 998244353
int n;
unordered_map<int,int>M;
signed main()
{
int m;
cin >> n >> m;
int temp;
for(int i=0;i<n;i++)
{
scanf("%lld",&temp);
if(temp<=m)
{
M[temp]++;
}
}
int sum=0,sum1=0;
for(auto i=M.begin();i!=M.end();i++)
{
sum1=0;
for(auto j=i;j!=M.end();j++)
{
int t=((int)(i->first)*(j->first));
sum1=(m/t)%MOD;
sum1=(((sum1*i->second)%MOD)*j->second)%MOD;
if(j->first!=i->first)
{
sum1*=2;
}
if(t>m)
{
continue;
}
sum1%=MOD;
sum+=sum1;
sum%=MOD;
}
}
cout << sum << endl;
return 0;
}
求大佬帮助qwq