計算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 11:54
下一篇 2017-03-22 22:59

相關推薦

  • day7作業練習

    1、顯示當前系統root、mage或wang用戶的UID和默認shell  2、找出/etc/rc.d/init.d/functions文件中行首為某單詞(包 括下劃線)后面跟一個小括號的行  3、使用egrep取出/etc/rc.d/init.d/functions中其基名     v …

    系統運維 2016-08-08
  • MBR詳解

    前言:     話說,現在買電腦如果預裝win8以上的系統,基本上都是GPT。想當年博主買的電腦預裝的win8磁盤分區樣式就是GPT,而且貌似如果想把win8換win7就得把GPT改成MPR。雖然會在最后提到GPT,不過本文還是主要講解MBR,并通過實驗驗證。 機械硬盤: 主引導記錄(Master Boot Record,縮寫:MBR),…

    Linux干貨 2016-11-14
  • 網絡管理,程序管理

    lsmod |grep bond0 ifconfig bond0 down 關閉bonding服務 rmmod bonding  刪除 bonding 服務 lsmod |grep eth1000 查看  lsmod指令,會列出所有已載入系統的模塊 rmmod  刪除內核中的一模塊  查找網卡驅動e1000 rmmod…

    Linux干貨 2016-09-11
  • 談shell命令的神奇組合以及對腳本的影響

    shell命令是我們與機器交互的基本溝通翻譯官。我們要告訴計算機的很多事情都由它來翻譯,而shell的神奇之處就在于支持命令聯合使用,現在我就來講講基本的命令組合引用。1.管道應用:命令 | 命令  ,前面的命令的結果可以直接作為后面命令的輸出,省卻了一個變量做存儲。2.文本段落提取;我們可以用 組合命令 通常為 cat 某文件 | (head -…

    Linux干貨 2017-04-02
  • 3、常用命令介紹

    http://note.youdao.com/yws/public/redirect/share?id=4840e26ee1d2b2c928b6c26e2ba14661&type=false

    Linux干貨 2016-08-08
  • 編譯安裝dropbear和使用

    一、概念 Dropbear是一個相對較小的SSH服務器和客戶端。它運行在一個基于POSIX的各種平臺。 Dropbear是開源軟件,在麻省理工學院式的許可證。 Dropbear是特別有用的“嵌入”式的Linux(或其他Unix)系統,如無線路由器。 二、功能 dropbear實現完整的SSH客戶端和服務器版本2協議。它不支持SSH版本1 的向后兼容性,以節省…

    Linux干貨 2016-10-04

評論列表(1條)

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

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

欧美性久久久久