日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

试题 历届试题 幸运数(二分)

發(fā)布時(shí)間:2024/9/3 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 试题 历届试题 幸运数(二分) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

試題 歷屆試題 幸運(yùn)數(shù)

資源限制
時(shí)間限制:1.0s 內(nèi)存限制:256.0MB


題描述
幸運(yùn)數(shù)是波蘭數(shù)學(xué)家烏拉姆命名的。它采用與生成素?cái)?shù)類似的“篩法”生成


首先從1開始寫出自然數(shù)1,2,3,4,5,6,…

1 就是第一個(gè)幸運(yùn)數(shù)。

我們從2這個(gè)數(shù)開始。把所有序號(hào)能被2整除的項(xiàng)刪除,變?yōu)?#xff1a;

1 _ 3 _ 5 _ 7 _ 9 …

把它們縮緊,重新記序,為:

1 3 5 7 9 … 。這時(shí),3為第2個(gè)幸運(yùn)數(shù),然后把所有能被3整除的序號(hào)位置的數(shù)刪去。注意,是序號(hào)位置,不是那個(gè)數(shù)本身能否被3整除!! 刪除的應(yīng)該是5,11, 17, …

此時(shí)7為第3個(gè)幸運(yùn)數(shù),然后再刪去序號(hào)位置能被7整除的(19,39,…)

最后剩下的序列類似:

1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, …

輸入格式
輸入兩個(gè)正整數(shù)m n, 用空格分開 (m < n < 1000*1000)
輸出格式
程序輸出 位于m和n之間的幸運(yùn)數(shù)的個(gè)數(shù)(不包含m和n)。
樣例輸入1

1 20

樣例輸出1

5

樣例輸入2

30 69

樣例輸出2

8

思路:

根據(jù)題意模擬篩出需要的數(shù)據(jù),
然后二分查找即可。
具體看代碼~

代碼:

#include <iostream> const int N = 1e6+5; using namespace std; int a[N]; bool vis[N]; //預(yù)先篩選 int solve() {int k = 0;for(int i = 1; i < 1e6; i+=2){a[++k] = i;}int id = 1;while(1){bool flag = false;int siz = k;for(int i = a[++id]; i <= siz; i+=a[id]){if(i % a[id] == 0){flag = true;vis[a[i]] = true;}}if(!flag) return k;k = 0;for(int i = 1; i <= siz; ++i){if(!vis[a[i]]) a[++k] = a[i];}} } //第一個(gè)大于v int getPos1(int k,int v) {int l = 1,r = k;int res = 0;while(l <= r){int mid = (l + r) >> 1;if(a[mid] > v){res = mid;r = mid - 1;}else l = mid + 1;}return res; }//最后一個(gè)小于v int getPos2(int k,int v) {int l = 1,r = k;int res = 0;while(l <= r){int mid = (l + r) >> 1;if(a[mid] < v){res = mid;l = mid + 1;}else r = mid - 1;}return res; }int main() {int n,m;int k = solve();cin>>m>>n;int ans = getPos2(k,n)-getPos1(k,m) + 1;cout<<ans<<endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的试题 历届试题 幸运数(二分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。