可逆素数编程c语言,巧用C语言求四位的可逆素数
求四位的可逆素數??赡嫠財抵?#xff1a;一個素數將其各位數字的順序倒過來構成的反序數也是素數。
*問題分析與算法設計
本題的重點不是判斷素數的方法,而是求一個整數的反序數。求反序數的方法是從整數的末尾依次截取最后一位數字,每截取一次后整數縮小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稱為孿生素數。
標簽:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至hey@evget.com
文章轉載自:網絡轉載
總結
以上是生活随笔為你收集整理的可逆素数编程c语言,巧用C语言求四位的可逆素数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言标准图形库,C语言图形库函数.do
- 下一篇: 用c语言编译二叉树,C语言实现二叉树的基