编制main函数,调用(一)、(二)、(三)定义的3个函数
• 输出1000以内的所有素数。
• 输出1000以内的所有回文数。
• 输出1000以内的所有回文素数。
• 若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。
/*
*Copyright (c) 2014,烟台大学计算机学院
*All gight reserved.
*文件名称:temp.cpp
*作者:邵帅
*完成时间:2014年11月6日
*版本号:v1.0
*/
#include<iostream>
using namespace std;
int main()
{
bool isPrimer(int n);
bool isPalindrome(int n);
int reverse(int x);
int m;
cout<<"1000以内所有的素数:";
for (m=1; m<=1000; m++)
{
if (isPrimer(m))
cout << m << " ";
}
cout<<endl<<endl<<"1000以内所有的回文数:";
for(m=1; m<=1000; m++)
{
if (isPalindrome(m))
cout << m << " ";
}
cout<<endl<<endl<<"1000以内所有的回文素数:";
for (m=1; m<=1000; m++)
{
if (isPrimer(m))
{
if (isPalindrome(m))
cout << m << " ";
}
}
cout<<endl<<endl<<"10000以内所有的可逆素数:";
int n;
for (m=1; m<=10000; m++)
{
if (isPrimer(m))
{
n=reverse(m);
if (isPrimer(n))
cout<<m<<" ";
}
}
return 0;
}
bool isPrimer(int n)
{
if(n<2)
return false;
for (int i=2; i*i<=n; i++)
{
if(n % i == 0)
return false;
}
return true;
}
bool isPalindrome(int n)
{
int x = 0, r,o;
o=n;
while (n > 0)
{
r = n % 10;
x = x * 10 + r;
n = n / 10;
}
if (o==x)
return true;
else
return false;
}
int reverse(int x)
{
int m=0,r;
while (x>0)
{
r=x%10;
m=m*10+r;
x=x/10;
}
return m;
}
运行结果:
@ Mayuko