<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C語言可逆素數教程

    時間:2025-04-10 14:09:01 C語言 我要投稿
    • 相關推薦

    C語言可逆素數教程

      引導語:可逆素數是一個素數將其各位數字的順序倒過來構成的反序數也是素數。以下是百分網小編分享給大家的C語言可逆素數教程,歡迎參考學習!

      求四位的可逆素數。可逆素數指:一個素數將其各位數字的順序倒過來構成的反序數也是素數。

      *問題分析與算法設計

      本題的重點不是判斷素數的方法,而是求一個整數的反序數。求反序數的方法是從整數的末尾依次截取最后一位數字,每截取一次后整數縮小10倍,將截取的數字作為新的整數的最后一位(新的整數擴大10倍后加上被截取的數字)。這樣原來的整數的數字從低到高被不斷地截取,依次作為新的整數從高到低的各位數字。

      *程序說明與注釋

      #include

      #include

      int num(int number);

      int ok(int number);

      int main()

      {

      int i,count;

      printf("There are invertable primes with 4 digits: \n");

      for(count=0,i=1001;i<9999;i+=2) //窮舉全部的奇數

      {

      if(num(i)) //若是可逆素數,則輸出

      printf(count%9 ? "%3d:%d" : "%3d:%d\n",++count,i);

      }

      return 0;

      }

      int num(int number)

      {

      int i,j;

      if(!ok(number))return 0; //判斷是否為素數

      for(i=number,j=0;i>0;i/=10) //按位將整數倒過來,產生反序數

      {

      j=j*10 + i%10;

      }

      if(number

      {

      if(!ok(i)) //判斷對應的反序數是否為可逆素數

      {

      return 0;

      }

      else

      {

      return 1; //若是可逆數素數,則返回1

      }

      }

      else

      {

      return 0;

      }

      getchar();

      return 0;

      }

      int ok(int number)

      {

      int i,j;

      if(number%2 ==0) //判斷是否為素數

      return 0;

      j= sqrt((double)number) +1 ; //取整數的平方根為判斷的上限

      for(i=3;i

      {

      if(number %i ==0) //若為素數則返回1,否則返回0

      return 0;

      }

      return 1;

      }

      *思考題

      求1000以內的孿生素數。孿生素數是指:若a為素數,且a+2也是素數,則素數a和a+2稱為孿生素數。

    【C語言可逆素數教程】相關文章:

    C語言數組教程02-28

    C語言文件操作教程05-11

    C語言位操作教程08-07

    C語言結構體教程06-17

    C語言函數遞歸教程03-01

    C 語言基礎教程07-22

    如何實現C語言畫圖教程08-08

    C語言如何實現畫圖教程05-02

    C語言函數的基本學習教程06-13

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人