一:问题及代码
/*
* 文件名称: 素数与回文
* 作 者: 钱浩宇
* 完成日期: 2016 年 6 月 1日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:无
* 输入描述: *
* 问题描述:
* 程序输出:
*/
#include<iostream.h>
int isprimer(int n)
{
int a,j;
a=n;
for(j=2;j<n;j++)
if(n%j==0)
{
a++;
}
return a;
}
int ispalindrome(int k)
{
int b,c,e,v,z,s;
if(k<10)
e=1;
if(k>10&&k<100)
{
v=k%10;
z=(k-v)/10;
if(v==z)
e=1;
else e=0;
}
if(k>=100)
{
b=k%10;
c=((k-b)%100)/10;
s=(k/100);
if(b==s)
e=1;
else e=0;
}
return e;
}
void main()
{
int n;
cout<<"300以内素数有:";
for(n=1;n<300;n++)
{
int f=isprimer(n);
if(f==n)
{
cout<<n<<" ";
}
}
cout<<endl;
cout<<"300以内回文数有:";
for(n=0;n<300;n++)
{
int m=ispalindrome(n);
if(m==1)
cout<<n<<" ";
}
cout<<endl;
cout<<"300以内回文素数有:";
for(n=1;n<300;n++)
{
int m=ispalindrome(n);
if(m==1)
{
int w=isprimer(n);
if(w==n)
{
cout<<n<<" ";
}
}
}
cout<<endl;
cout<<"300以内逆素数有:";
for(n=1;n<300;n++)
{
int r=isprimer(n);
if(r==n)
{
int t=n%10;
int y=(n-t)/10;
int u=10*t+y;
int p=isprimer(u);
if(p==u)
cout<<r<<" ";
}
}
}
二:运行结果
三:心得
需要考虑的全面细致
四:分析
程序较长,要注意细小地方不能出错