/*
02.* 文件名称:素数和回文
03.* 作 者:龚晓天
04.* 完成日期: 2016 年 6 月 5 日
05.* 版 本 号:v1.0
06.* 对任务及求解方法的描述部分:略
07.* 输入描述: 略
08.* 问题描述: 求素数和回文
09.* 程序输出: 输出300以内所有素数、回文数、回文素数、可逆素数
10.* 问题分析: 略
11.* 算法设计: 略
12.*/
#include<iostream>
using namespace std;
int isPrimer(int n)//判断是否为素数
{ int i;
{for(i=2;i<n;i++)
if(n%i==0)break;}
if(i==n) return 1;
else return 0;
}
int isPalindrome(int n)//判断是否是回文数
{
if(n<10)return 1;
else if(n>=10&&n<100&&n/10==n%10)return 1;
else if(n>100&&n/100==n%10)return 1;
}
int main()
{
int o,p,k=0,j,w,g,l,s,h;
cout<<"300以内所有的素数是:";
for(o=2;o<300;o++)
{
p=isPrimer(o);
if(p==1)
{
cout<<o<<" ";
}
}
cout<<endl<<"300以内所有的回文数是:";
for(o=2;o<300;o++)
{
j=isPalindrome(o);
if(j==1)
{
cout<<o<<" ";
}
}
cout<<endl<<"300以内所有的回文素数是:";
for(o=2;o<300;o++)
{
if(isPalindrome(o)==isPrimer(o))
cout<<o<<" ";
}
cout<<endl<<"300以内的所有可逆素数是:";
for(o=2;o<10;o++)
{ w=isPrimer(o);
if(w==1) cout<<o<<" ";}
for(o=10;o<100;o++)
{l=o/10;g=o%10;
h=g*10+l;
if(isPrimer(o)==isPrimer(h)&&isPrimer(o)==1) cout<<o<<" ";
}
for(o=100;o<300;o++)
{
s=o/100;
l=o/10-s*10;
g=o%10;
h=g*100+l*10+s;
if(isPrimer(o)==isPrimer(h)&&isPrimer(o)==1) cout<<o<<" ";
}
}
学习心得:自己做得有点懵,经过帮助还是做出来了