写这道题时,写了一份这个代码
// LUOGU_RID: 99326353
#include<bits/stdc++.h>
#pragma optimize(3)
#define TEST_TIME 10
#define POLLAR_K 127
#define ll long long
#define ui unsigned int
using namespace std;
#define gint ll
#define MAXN 200010
#define MOD 998244353
#define int long long
inline ll qread(){
char c=getchar();ll num=0,f=1;
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) num=num*10+c-'0';
return num*f;
}
ll qp(ll a,ll b,ll p){
ll ans=1,base=a;
while(b){
if(b&1){ans=(gint)ans*base%p;}
base=(gint)base*base%p;
base%=p;
b>>=1;
}
return ans;
}
bool millerRabin(ll pr){
if(pr<2)return 0;
if(pr==3)return 1;
if(pr==2)return 1;
ll a=pr-1,b=0;
while(!(a&1))a>>=1,b++;
for(int i=1;i<=TEST_TIME;i++){
ll x=rand()%(pr-2)+2,v=qp(x,a,pr),j;
if(v==1||v==pr-1)continue;
for(j=0;j<b-1;j++){
v=(gint)v*v%pr;
if(v==pr-1)break;
}
if(v!=pr-1)return false;
}
return true;
}
ll mu(ll n){
int k=0;
for(int i=2;i*i<=n;i++){
if(n%i==0){k++;int ci=0;while(n%i==0){n/=i;ci++;}if(ci>1){return 0;}}}
if(n!=1){k++;}
return (k&1)?(-1):1;
}
ll a[MAXN];
signed main(){
int t;
scanf("%d",&t);
while(t--){
ll n,m;
n=qread();m=qread();
ll ans=1;
a[1]=qread();
for(int i=2;i<=n;i++){
ll ci,di;
a[i]=qread();
if(a[i-1]%a[i]||ans==0){
ans=0;
continue;
}
ci=m/a[i],di=a[i-1]/a[i];
ll nans=0;
for(ll d=1;d*d<=di;d++){
if(di%d==0){
ll nd=di/d;
nans=(nans+mu(d)*(ci/d)%MOD+MOD+mu(nd)*(ci/nd)%MOD+MOD)%MOD;
if(d==nd){
nans=(nans-mu(d)*(ci/d)%MOD+MOD)%MOD;
}
}
}
ans=ans*nans%MOD;
}
cout<<ans<<endl;
}
}
出现了Idleness limit exceeded on test 1,洛谷上显示UKE,请问大佬这是什么原因(https://codeforces.com/contest/1750/submission/188824085)