程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> 問題五十四: 輸出10000以內的所有回文素數。

問題五十四: 輸出10000以內的所有回文素數。

編輯:關於C

[plain]
/* 程序頭部注釋開始(為避免提交博文中遇到的問題,將用於表明注釋的斜槓刪除了)      
* 程序的版權和版本聲明部分      
* All rights reserved.      
* 文件名稱: txt.c      
* 作    者: liuyongshui      
* 問    題:  輸出10000以內的所有回文素數 
* 問題來源:  
* 完成日期: 2013 年4 月17日      
* 版 本 號: V1.0      
*/     
 
#include <stdio.h> 
 
int  isPrimer(int n);      //是素數 
int  isPalindrome(int m);  //是回文數 
 
int main() 

    int i; 
 
    for(i=2; i<10000; i++) 
    { 
       if( isPrimer(i) && isPalindrome( isPrimer(i) ) ) 
       { 
           printf("是回文素數有:%d\n", i); 
       } 
    } 
    
    return 0; 

 
 
int isPrimer(int n) 

     int i; 
     int flag; 
 
     for(i=2; i<=n/2; i++) 
     {     
          flag=1; 
          if(n%i==0)   //檢查是否為素數 
          { 
              flag=0;   //不是素數,flag=0 
          } 
     } 
      
     if(flag) 
     { 
          return n; 
     } 
     else  
     { 
          return 0; 
     } 

 
int isPalindrome(int m) 

    int i=0; 
    int j; 
    int num; 
    int a[5]; 
     
     
    if(m>=10)    //檢測大於10的回文數 
    { 
        num=m; 
        while(m)  //m==0時結束,次循環吧m的每一位存入數組中 
        { 
            a[i++]=m%10; 
            m=m/10; 
        } 
 
        for(j=i-1; j>=0; j--)    //檢測是否為回文 
        { 
            if(a[j]!= num%10)  
            { 
                return 0;     //若有不同返回0 
            } 
            num=num/10; 
        } 
         
        return 1; 
    } 
     
    else   //小於10,肯定不是回文數 
    { 
         return 0; 
    } 

/* 程序頭部注釋開始(為避免提交博文中遇到的問題,將用於表明注釋的斜槓刪除了)    
* 程序的版權和版本聲明部分    
* All rights reserved.    
* 文件名稱: txt.c    
* 作    者: liuyongshui    
* 問    題:  輸出10000以內的所有回文素數
* 問題來源:
* 完成日期: 2013 年4 月17日    
* 版 本 號: V1.0    
*/   

#include <stdio.h>

int  isPrimer(int n);      //是素數
int  isPalindrome(int m);  //是回文數

int main()
{
    int i;

 for(i=2; i<10000; i++)
 {
    if( isPrimer(i) && isPalindrome( isPrimer(i) ) )
    {
        printf("是回文素數有:%d\n", i);
    }
 }
  
 return 0;
}


int isPrimer(int n)
{
     int i;
  int flag;

  for(i=2; i<=n/2; i++)
  {   
    flag=1;
          if(n%i==0)   //檢查是否為素數
    {
        flag=0;   //不是素數,flag=0
    }
  }
 
  if(flag)
  {
    return n;
  }
     else
  {
    return 0;
  }
}

int isPalindrome(int m)
{
    int i=0;
 int j;
 int num;
 int a[5];
   
 
    if(m>=10)    //檢測大於10的回文數
 {
  num=m;
     while(m)  //m==0時結束,次循環吧m的每一位存入數組中
  {
      a[i++]=m%10;
   m=m/10;
  }

  for(j=i-1; j>=0; j--)    //檢測是否為回文
  {
   if(a[j]!= num%10)
   {
       return 0;     //若有不同返回0
   }
   num=num/10;
  }
       
  return 1;
 }
 
 else   //小於10,肯定不是回文數
 {
      return 0;
 }
}  局部圖

 

\
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved