#include #define int long long #define endl '\n' #define all(x) x.begin(), x.end() #define sz(x) (int)((x).size()) using namespace std; void solve([[maybe_unused]] int test_case){ int n,k; cin>>n>>k; int a[n]; for(int i=0;i>a[i]; } int mu[500010]={0}; for(int i=0;i<=n;i++)mu[i]=1; int pr[n+1]={0}; for(int i=2;i<=n;i++){ if(pr[i]!=0)continue; for(int k = 1; k*i<=n;k++){ pr[i*k] = 1; mu[i*k]*=-1; } for(int k=1;k*i*i<=n;k++){ mu[k*i*i]=0; } } int res=0; int r=n; int arr[500010]={0}; int cnt=0; for(int l=n-1;l>=0;l--){ int x = a[l]; for(int j=2;j*j<=x;j++){ if(x%j==0){ // cout<=k){ r--; int x = a[r]; for(int j=2;j*j<=x;j++){ if(x%j==0){ arr[j]--; cnt += arr[j] * mu[j]; if(j*j==x)continue; int y = x/j; arr[y]--; cnt += arr[y] * mu[y]; } } arr[x]--; cnt+=arr[x]*mu[x]; } // cout<>test; for(int _=1;_<=test;_++){ solve(_); } return 0; }