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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

B1013 数素数(20分)

發(fā)布時(shí)間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 B1013 数素数(20分) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

B1013 數(shù)素?cái)?shù)(20分)

\(P?_i\)表示第 i 個(gè)素?cái)?shù)。現(xiàn)任給兩個(gè)正整數(shù) \(M≤N≤10^4\),請輸出 \(P_M\)\(P_N\)的所有素?cái)?shù)。

輸入格式:

輸入在一行中給出 M 和 N,其間以空格分隔。

輸出格式:

輸出從 \(P_?M\)\(P_N\)的所有素?cái)?shù),每 10 個(gè)數(shù)字占 1行,其間以空格分隔,但行末不得有多余空格。

輸入樣例:

5 27

輸出樣例:

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

思考

這個(gè)問題是否需要篩法?
我覺得是需要的,因?yàn)?0的4次方已經(jīng)很大了,是素?cái)?shù)的個(gè)數(shù)達(dá)到10的4次方。
算法筆記上說,篩法和非篩法都可以解決問題。
那么首先用非篩法試一下。
前100009個(gè)數(shù)有9593個(gè)素?cái)?shù)。所以這里用不用篩法,都可以解決問題前1000009有78499個(gè)素?cái)?shù);
每 10 個(gè)數(shù)字占 1 行,其間以空格分隔,但行末不得有多余空格。
怎么辦?這種輸出形式。
給出第4個(gè)測試點(diǎn)答案錯(cuò)誤的代碼

#include<cstdio> #include<cstring> #include<cmath> const int MAXN=100009; int prime[MAXN], pNum = 0; bool p[MAXN] = {0}; bool isPrime(int n){if(n<=1) return false;int sqr=(int)sqrt(1.0*n);for(int i=2;i<=sqr;i++){if(n%i==0) return false;}return true; }void Find_Prime(){for(int i = 1; i<MAXN;i++){if(isPrime(i) == true){prime[pNum++] = i;p[i] = true;}} } int main(){Find_Prime();int M,N;int enter=0; scanf("%d %d", &M, &N);for(int i=M-1;i<N-1;i++){printf("%d",prime[i]);enter++;if(enter!=10){printf(" ");}else {printf("\n");enter = 0;}}printf("%d",prime[N-1]); }

不斷擴(kuò)大打表范圍
終于在擴(kuò)大到
const int MAXN=110050;時(shí)候AC掉了,估計(jì)是最大的極限的素?cái)?shù)10的4次方的。

轉(zhuǎn)載于:https://www.cnblogs.com/lingr7/p/10292015.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的B1013 数素数(20分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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