計算1000以內的總質數個數

#include <stdio.h>

int main() {

  int micro[500];       // 質數保存素組
  int number = 0;       // 質數個數
  
  micro[number++] = 2;  // micro[0]=2
  micro[number++] = 3;  // micro[1]=3, number=2

  unsigned long counter = 0;  // 計算處理次數

  int start = 5;    // 質數開始數字
  int end = 1000;   // 指數結束數字

  int inner ;   // 內層循環變量

  for (start=5; start <= end; start+=2) {
    int flag = 0; // 判斷是否為不是指數
    
    // test
    //printf("%d\n", start);

    /*  
     *
     * 循環已經保存的指數為判斷條件
     * 例如:100以內人數字
     * 20 * 5 = 100
     * 不被5整除的數字,20也不會被整除
     * */
    for(inner=1; counter++, micro[inner] * micro[inner] <= start; inner++) {
      counter++;

      // printf("%d\n", start);
      // return 0;
if (start % micro[inner] == 0) {
        flag = 1;
        break;
      }   
    }

    if (!flag)
      micro[number++] = start;
  }

  int j = 0;
  for(inner=0; inner < number; inner++) {
    j++;
    printf("%3d\t", micro[inner]);
    if (j % 7 == 0) {
      puts("");
      j = 0;
    }
  }

  printf("處理運算的次數:%lu\n", counter);
  printf("0~%d之間的共個數為:%d\n", end, number);

  return 0;
}
 2      3   5   7  11  13  17 
 19  23  29  31  37  41  43 
 47  53  59  61  67  71  73 
 79  83  89  97 101 103 107 
109 113 127 131 137 139 149 
151 157 163 167 173 179 181 
191 193 197 199 211 223 227 
229 233 239 241 251 257 263 
269 271 277 281 283 293 307 
311 313 317 331 337 347 349 
353 359 367 373 379 383 389 
397 401 409 419 421 431 433 
439 443 449 457 461 463 467 
479 487 491 499 503 509 521 
523 541 547 557 563 569 571 
577 587 593 599 601 607 613 
617 619 631 641 643 647 653 
659 661 673 677 683 691 701 
709 719 727 733 739 743 751 
757 761 769 773 787 797 809 
811 821 823 827 829 839 853 
857 859 863 877 881 883 887 
907 911 919 929 937 941 947 
953 967 971 977 983 991 997 
處理運算的次數:3774
0~1000之間的共個數為:168

原創文章,作者:rainbow,如若轉載,請注明出處:http://www.www58058.com/71567

(0)
rainbowrainbow
上一篇 2017-03-22
下一篇 2017-03-22

相關推薦

  • Linux作業管理、并發執行、計劃任務

    概述     本章將為大家介紹一些進程管理的補充部分作業管理和任務的并發執行,同時也將介紹一下Linux系統上計劃任務的相關內容,具體分為:         1、Linux作業管理     &nbsp…

    Linux干貨 2016-09-09
  • 程序包的編譯安裝

    程序包的編譯安裝 之所以需要安裝編譯程序包,是為了能及時更新程序包,制作好的rpm包,版本一般都有點老了,所以編譯安裝是必報的,而且我們可以自己定義安裝路徑,想卸載直接刪除就KO了; 在centos7.3環境下安裝apache http服務: 1.首先獲取最新的apache源碼包下載到/root目錄下; 2.檢查安裝環境,沒有就安裝環境:   記住…

    Linux干貨 2017-03-09
  • 網絡配置

    Internet 協議特征  運行于OSI 網絡層  面向無連接的協議  獨立處理數據包  分層編址  盡力而為傳輸  無數據恢復功能     IP地址 它們可唯一標識IP 網絡中的每臺設備 每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址&…

    Linux干貨 2016-09-06
  • 用戶管理、組管理、權限管理、文本處理工具應用示例

    用戶管理、組管理、權限管理、文本處理工具應用示例 1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限 [root@localhost ~]# cp -a /etc/skel/ /home/tuser1/ [root@localhost ~]# chmod -R go= /hom…

    Linux干貨 2017-07-23
  • Linux文件管理命令與bash的工作特性

    Shell程序在接受到用戶執行命令的請求時,在分析完成之后,最左側的字符串會被當作命令;
    命令查找機制:查找內部命令時,根據PATH環境變量中設定的目錄,從左至右逐個搜索目錄下的文件名;

    2018-03-11
  • Linux 學習基本

    環境配置主要分硬件和軟件兩種

    2018-03-26

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-29 17:18

    不錯哦,C也用的這么溜了。

欧美性久久久久