/*
* 文件名称:Ex1-2.cpp
* 作 者:莫洋
* 完成日期:2016 年 3 月 14 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:无
* 问题描述:运用函数
* 程序输出:略
* 问题分析:略
* 算法设计:略
*/
#include<stdio.h>
#include<math.h>
int isPalindrome(int);
int reverse(int);
int isPrime(int);
int main()
{
int m;
printf("100以内的所有素数\n");
for(m=2;m<100;++m)
{
if(isPrime(m))
printf("%d\t", m);
}
printf("\n");
printf("100以内的所有回文数\n");
for(m=2;m<100;++m)
{
if(isPalindrome(m))
printf("%d\t", m);
}
printf("\n");
printf("100以内的所有回文素数\n");
for(m=2;m<100;++m)
{
if(isPalindrome(m)&&isPrime(m))
printf("%d\t", m);
}
printf("\n");
printf("100以内的所有可逆素数\n");
for(m=2;m<100;++m)
{
if(isPrime(m)&&isPrime(reverse(m)))
printf("%d\t", m);
}
printf("\n");
return 0;
}
int isPalindrome(int n)
{
int palindrome=0;
if(reverse(n)==n)
palindrome=1;
return palindrome;
}
int reverse(int x)
{
int m=0;
while(x>0)
{
m=m*10+x%10;
x=x/10;
}
return m;
}
int isPrime(int n)
{
int prime=1;
int k=sqrt(n);
int i;
for(i=2; i<=k; i++)
{
if(n%i==0)
{
prime=0;
break;
}
}
return prime;
}
运行结果: