题目链接
【题解】LibreOJ10202樱花 线性筛


一番玄学打表后,发现对于primei,primein,x=primei,ans=ans(j=1logxnn/xj2+1)∀prime_i,prime_i\le n,令x=prime_i,ans=ans*(\sum_{j=1}^{⌊\log_xn⌋}n/x^j*2+1)
表示证明不来,反正对了。

#include<cstdio>
typedef long long ll;
const int mod=1e9+7;
const int N=1e6+10;
ll prime[N/10],p;
bool iscomp[N];
void primetable()
{
	for(ll i=2;i<N;i++)
	{
		if(!iscomp[i])prime[p++]=i;
		for(int j=0;j<p&&i*prime[j]<N;j++)
		{
			iscomp[i*prime[j]]=1;
			if(i%prime[j]==0)break;
		}
	}
}
int main()
{
	primetable();ll n,ans=1;
	scanf("%lld",&n);
	for(ll i=0;i<p&&prime[i]<=n;i++)
	{
		ll x=prime[i],cnt=0;
		while(x<=n)cnt+=n/x,x*=prime[i];
		ans=1ll*ans*(cnt*2+1)%mod;
	}
    printf("%lld\n",ans);
    return 0;
}

总结

这叫打表找规律吗

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2021-04-11
  • 2021-12-27
  • 2021-05-29
  • 2022-12-23
  • 2022-01-16
猜你喜欢
  • 2021-10-24
  • 2022-12-23
  • 2022-01-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
相关资源
相似解决方案