由于n的范围是(1<n<1000000000)
所以用素数定理
素数定理之处当x增大π(X)/(X/ lnX)≈1
所以这里可以用素数定理求位数 lg(n/ln n)+1由于给出的是10^n所以带入化简得
N – lg- lg(le(10))+1为所求
素数定理 请百度
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
double n,m;
while(cin>>n)
{
m=double(n-log10(n)-log10(log(10)));
//printf("%.0lf\n",m+1);
//cout<<(int)m+1<<endl;
printf("%d\n",(int)m+1);
}
return 0;
}
本文介绍了一种利用素数定理估算特定数值范围内素数位数的方法,并给出了C++实现代码。通过简化公式,计算10^n形式的数的位数。
3393

被折叠的 条评论
为什么被折叠?



