/*
一、问题及代码.
文件名称:0.exe
* 作 者: 谢泽文
* 完成日期: 2016 年 6 月 5 日
* 版 本 号:v1.0
* 对任务及求解方法的描述: 函数,循环
* 输入描述: 无
* 问题描述:素数和回文
* 程序输出: 300以内的所有素数 300以内的所有回文数 300以内的所有回文素数 300以内的所有可逆素数
* 问题分析:函数的用法
* 算法设计:略
*/
#include<iostream>
using namespace std;
int f(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0)
break;
}
if(i==n)
return 1;
else
return 0;
}
int g(int n)
{
int x,a,b,c;
a=n%10;
b=(n/10)%10;
c=n/100;
if(n<10) x=n;
else if(n<100) x=a*10+b;
else x=a*100+b*10+c;
if(x==n)
return 1;
else
return 0;
}
int h(int n)
{
int x,a,b,c;
a=n%10;
b=(n/10)%10;
c=n/100;
if(n<10) x=n;
else if(n<100) x=a*10+b;
else x=a*100+b*10+c;
return x;
}
void main()
{
int n,i=0,j=0,p=0,q=0,k;
int a[300]={0},b[300]={0},c[300]={0},d[300]={0};
for(n=2;n<=300;n++)
{
if(f(n)==1)
a[i++]=n;
if(g(n)==1)
b[j++]=n;
if(g(n)==1&&f(n)==1)
c[p++]=n;
if(f(h(n))==1&&f(n))
d[q++]=n;
}
cout<<"300以内的所有素数为:";
for(k=0;k<i;k++)
cout<<a[k]<<" ";
cout<<endl;
cout<<"300以内的所有回文数为:";
for(k=0;k<j;k++)
cout<<b[k]<<" ";
cout<<endl;
cout<<"300以内的所有回文素数为:";
for(k=0;k<p;k++)
cout<<c[k]<<" ";
cout<<endl;
cout<<"300以内的所有可逆素数为:";
for(k=0;k<q;k++)
cout<<d[k]<<" ";
cout<<endl;
}
二,运行结果
三、心得体会:
注意函数的定义,返回值,参数
四、知识点总结:
注意返回值的使用