一.问题及代码
/*
* 文件名称:素数和回文
* 作 者: 杨昌程
* 完成日期: 2016 年 6 月 5 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:判断是否为素数和回文数,并输出300以内的结果
* 输入描述: 编制函数
* 问题描述: 求300以内的素数、回文数、回文素数、可逆素数
* 程序输出: 输出300以内所有素数、回文数、回文素数、可逆素数
* 问题分析: 略
* 算法设计: 略
*/
#include <iostream>
using namespace std;
int ss(int n)
{
for(int i=2;i<n;i++)
{
if(n%i==0)
break;
}
if(i==n)
return 1;
else
return 0;
}
int hws(int n)
{
int m=0;
while(n)
{
m=m*10+n%10;
n/=10;
}
return m;
}
void main()
{
int i,j=0,k=0,m=0,n=0,s,h,g;
int a[100],b[100],c[100],d[100];
for(i=2;i<=300;i++)
{
s=ss(i);
h=hws(i);
g=ss(h);
if(s==1)
{
a[j]=i;
j++;
}
if(h==i)
{
b[k]=i;
k++;
}
if(h==i&&s==1)
{
c[m]=i;
m++;
}
if(g==1&&s==1)
{
d[n]=i;
n++;
}
}
cout<<"300以内所有素数为:"<<endl;
for(i=0;i<j;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"300以内所有回文数为:"<<endl;
for(i=0;i<k;i++)
cout<<b[i]<<" ";
cout<<endl;
cout<<"300以内所有回文素数为:"<<endl;
for(i=0;i<m;i++)
cout<<c[i]<<" ";
cout<<endl;
cout<<"300以内所有可逆素数为:"<<endl;
for(i=0;i<n;i++)
cout<<d[i]<<" ";
cout<<endl;
return 0;
}
二.运行结果
三.心得体会
本次实验主要为函数的编制。在实验过程中遇到很多问题,编译过程还不够扎实,问了好多同学,也参考了好多内容。