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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1013 数素数 (20 分)(c语言)

發布時間:2024/4/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1013 数素数 (20 分)(c语言) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

令?Pi??表示第?i?個素數。現任給兩個正整數?M≤N≤104,請輸出?PM??到?PN??的所有素數。

輸入格式:

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

輸出格式:

輸出從?PM??到?PN??的所有素數,每 10 個數字占 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

結尾無空行

#include<stdio.h> #include<math.h> #pragma warning(disable:4996) int sushu(int n); int book[107000] = { 0 }; int main() {int M, N,i=1;int Pi;scanf("%d %d", &M, &N);for (int cnt = 2; cnt <= 107000; cnt++) {//記錄所有素數if (sushu(cnt)) {book[i] = cnt;i++;}}int flag = 0;for (int cnt = M, i = 1; cnt <= N; cnt++, i++) {if (flag == 0) {printf("%d", book[cnt]);flag = 1;}else {printf(" %d", book[cnt]);}if (i % 10 == 0) {putchar('\n');flag = 0;}}return 0; } int sushu(int n) {int flag = 1;if (n == 2) {return flag;}for (int cnt = 2; cnt <= sqrt(n); cnt++) {if (n % cnt==0) {flag = 0;}}return flag; }

我踩過的坑:

1.這題其實很簡單,但有一點很關鍵,數組的大小設置,這題數組設小了會爆炸,至少要15000++,

2.因為我用的是平方的做法,所以我寫的判斷素數函數當輸出的值是2的時候,要直接返回flag,(flag用來表示真假),然后還有sqrt那里不能用<,因為4的平方正好是2,那函數除不到2,就會導致4也被判定成素數了

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。