一、问题及代码:
/*
* 文件名称: 01.c
* 作 者: 郭宇辉
* 完成日期:2016 年 03 月 11 日
* 版 本 号:v6.0
* 对任务及求解方法的描述部分:
* 输入描述:
* 问题描述:1.编制2个返回值为int型的函数,用于判断参数是否为素数和回文,
调用函数回答以下问题(请包括在一个main()函数中完成,输出
时,用明显的提示语,说明正在完成哪个任务。)
(1)输出100以内的所有素数。
(2)输出100以内的所有回文数。
(3)输出100以内的所有回文素数。
(4)若一个素数的反序数仍为素数,则称它为可逆素数。
求100以内的所有可逆素数。
* 程序输出:
* 问题分析:
* 算法设计:函数
*/
#include <iostream>
using namespace std;
int main()
{
int isPrimer(int n);//判断是否为素数
int isPalindrome(int n); //判断是否为回文
int i,a,b,t;
cout<<"1、输出100以内的所有素数:"<<endl;
for(i=1;i<=100;i++)
{
if(i>1)
{
if(isPrimer(i)!=1)
cout<<i<<" ";
}
}
cout<<endl<<endl;
cout<<"2、输出100以内的所有回文数:";
for(i=1;i<=100;i++)
{
if(i>=1)
{
if(isPalindrome(i)==1)
cout<<i<<" ";
}
}
cout<<endl<<endl;
cout<<"3、输出100以内的所有回文素数:";
for(i=1;i<=100;i++)
{
if(i>1)
{
if(isPalindrome(i)==1&&isPrimer(i)!=1)
cout<<i<<" ";
}
}
cout<<endl<<endl;
cout<<"4、100以内的所有可逆素数:";
for(i=1;i<=100;i++)
{
if(i>1)
{
if(isPrimer(i)!=1)
{
if(i<10)
cout<<i<<" ";
if(i>=10)
{
a=i/10;
b=i%10;
t=b*10+a;
if(isPrimer(t)!=1)
cout<<t<<" ";
}
}
}
}
cout<<endl;
return 0;
}
// 调用的函数:
int isPrimer(int n)
{
int k=0;
for(int j=2;j<n;j++)
{
if(n%j==0) { k=1;break;}
}
return k;
}
int isPalindrome(int n)
{
int b[10],k=0;
if(n>=10&&n<=100)
{
b[0]=n/10;
b[1]=n%10;
if(b[0]==b[1])
k=1;
}
if(n<10)
{
k=1;
}
return k;
}
二、运行结果:
三、心得体会:
编译时,有几次找不到问题的所在,在朋友的帮助下发现,自己的问题全都是一些“低级问题”(不是把main写错就是少了一个“}”),
对此,我还需要多加练习!
四、知识点总结:
函数的调用以及循环体的使用。