这个代码的时间复杂度
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
bool check(int x)
{
if(x<2)
return 0;
for(int i=2;i*i<=x;++i)
if(x%i==0)
return 0;
return 1;
}
int n;
int a[N],sum[N],p[N];
signed main()
{
cin>>n;
int k=-1;
for(int i=1;i<=n;++i)
{
cin>>a[i],sum[i]=sum[i-1]+a[i];
if(a[i]==1)
p[i]=i;
p[i]+=p[i-1];
}
for(int ans=1;ans<=n;++ans)
{
if(sum[n]%ans==0&&check(ans))
{
k=ans;
break;
}
}
int st=1,ans=0;
for(int i=1;i<=n;++i)
if(sum[i]-sum[st-1]==k)
{
int x=0x3f3f3f3f;
for(int j=st;j<=i;++j)
x=min(x,max(0ll,j*(sum[j-1]-sum[st-1])-(p[j-1]-p[st-1]))+max(0ll,(p[i]-p[j])-j*(sum[i]-sum[j])));
ans+=x;
st=i+1;
}
cout<<ans;
}