小明是乙個聰明的孩子,對數論有著非常濃烈的興趣。他發現求1到正整數10n 之間有多少個素數是乙個非常難的問題,該問題的難以決定於n 值的大小。如今的問題是,告訴你n的值,讓你幫助小明計算小於10n的素數的個數值共同擁有多少位?
輸入資料有若干組,每組資料報括1個整數n(1 < n < 1000000000),若遇到eof則處理結束。
相應每組資料,將小於10n 的素數的個數值的位數在一行內輸出,格式見樣本輸出。同組資料的輸出,其每乙個尾數之間空一格,行末沒有空格。
37
36
素數定理
題目非常明了,考查素數定理:設p(n)是從1到n之間素數的個數,則隨著n的增大,p(n)/(n/ln(n))=1。
要求乙個數x的位數,用公式:lg(x)+1; 在本題中 [ lg( n/ ln(n) ) ] +1 即為所求。
而在本題其中的'n'是指10的n次方,即10^n,這個不要弄錯了。
lg(x):以10為底,x的對數;
ln(x):為e為底,x的對數。
以下來推算一下:
位數為:lg( (10^n) / ln ( 10^n ) )+1
= lg(10^n) - lg( ln( 10^n) ) +1
= n - lg( n*ln(10) ) +1 =
n- lg(n) - lg( ln(10) ) +1
#include #include#includeusing namespace std;
int main()
{ double n,m;
while(cin>>n)
{m=double(n-log10(n)-log10(log(10)));
cout<
NEFU 117 素數個數的位數
定義 x 為 1 到 x的素數個數。素數定理 隨著x的增長,x x ln x 1 推論 令pn是第n個素數,其中n是正整數,那麼pn n ln n 題意 求小於10的n次方的素數的個數共有多少位,n 1e9 題解 這道題的資料量很大,因為10的n次方很大,會溢位,不能直接運算,該題只是求素數分布值的...
NEFU 117素數個數的位數
題目傳送門 點選開啟鏈結 小明是乙個聰明的孩子,對數論有著很濃烈的興趣。他發現求1到正整數10n 之間有多少個素數是乙個很難的問題,該問題的難以決定於n 值的大小。現在的問題是,告訴你n的值,讓你幫助小明計算小於10n的素數的個數值共有多少位?輸入資料有若干組,每組資料報含1個整數n 1 n 100...
nefu117 素數個數的位數 素數定理 位數公式
這道題目 看著很嚇人,完全沒法入手,後來才知道是個簡單題,首先是 球位數,那肯定跟位數公式有關,再是素數,最後找了一下素數定理,先貼一下關於 素數定理的 資料 include根據素數定理,隨著x的增長 x 與 x lnx,最後幾乎相等,所以本道題目直接球 x lnx的位數即可,再根據位數公式 那麼 ...