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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

打印100~200 之间的素数

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打印100~200 之间的素数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編寫思想:對100到200之間的數依次進行for循環判斷,看其是否為素數。判斷方法:對于一個自然數,除了1以外,不是素數就是合數。若該數字是素數,則不能被除了1和它自身以外的數整除;而一個數如果是合數,則它的所有因子不會大于對其開根號所得出的數,由此可得出每個數最多時候的循環次數。

初次生成的源代碼如下:

#include<stdio.h> #include<math.h> int?main() {int?primer,variabe,sign;for(primer=101;primer<201;primer++){for(variabe=2;variabe<=sqrt(primer);variabe++){sign=0;if(primer%variabe==0)??break;else??sign=1;}if(sign==1)printf("%-5d",primer);}return?0; }

運行結果如下:

101 ? 103 ? 107 ? 109 ? 113 ? 127 ? 131 ? 137 ? 139 ? 149 ? 151 ? 157 ? 163 ? 167

173 ? 179 ? 181 ? 191 ? 193 ? 197 ? 199

由于以上程序產生了一些不必要的循環,增加了程序的時間復雜度,故而對其進行了改進。

改進1:去掉了標志變量sign,減少了內存的占用;

改進2:由于找的是100到200之間的素數,因此其間的偶數均不必進行判斷,故而只剩下奇數,又由于奇數肯定無法被偶數整除,故而去掉variable中的偶數循環,降低了程序的時間復雜度。

改進后的代碼如下:

#include<stdio.h> #include<math.h> int?main() {int?primer,variabe;for(primer=101;primer<201;primer+=2){for(variabe=3;variabe<=sqrt(primer);variabe+=2){if(primer%variabe==0)??break;}if(variabe>sqrt(primer))printf("%-5d",primer);}return?0; }

運行結果同上一致:

101 ? 103 ? 107 ? 109 ? 113 ? 127 ? 131 ? 137 ? 139 ? 149 ? 151 ? 157 ? 163 ? 167

173 ? 179 ? 181 ? 191 ? 193 ? 197 ? 199


轉載于:https://blog.51cto.com/lookforward2/1717920

總結

以上是生活随笔為你收集整理的打印100~200 之间的素数的全部內容,希望文章能夠幫你解決所遇到的問題。

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