[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;
}
} 局部圖