您的位置:首页 > 编程语言 > C语言/C++

c++第1次实验

2016-03-14 17:03 295 查看
/* 
* 文件名称:判断素数,回文数,可逆素数,回文素数
* 作    者:  王水彪
* 完成日期:  2016    年    3 月 14  日 
* 版 本 号:v1.0 
* 对任务及求解方法的描述部分:
* 输入描述:  无
* 问题描述: 
(1)输出100以内的所有素数。
(2)输出100以内的所有回文数。
(3)输出100以内的所有回文素数。

(4)若一个素数的反序数仍为素数,则称它为可逆素数。求100以内的所有可逆素数。
* 程序输出:  略
* 问题分析: 调用函数
* 算法设计:  
*/  
一、问题及代码

#include<iostream>
using namespace std;
int isPrimer(int n);
int isPalindrome(int n);
int kenisushu(int n);
int main()
{
int n;
for(n=2;n<=100;n++)
{
if(isPrimer(n)!=0)
cout<<n<<" ";
}
cout<<endl;
for(n=1;n<=100;n++)
{
if(isPalindrome(n)!=0)
cout<<n<<" ";
}
cout<<endl;
for(n=2;n<=100;n++)
{
if(isPrimer(n)&&isPalindrome(n))
cout<<n<<" ";
}
cout<<endl;
for(n=2;n<=100;n++)
{
if(kenisushu(n))
cout<<n<<" ";
}

return 0;
}
//定义函数
int isPrimer(int n)//判断是否为素数
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int isPalindrome(int n) //判断是否为回文
{
int i;
int sum=0;
i=n;
while(n)
{
sum=sum*10+n%10;
n/=10;
}
if(i==sum)
return 1;
else
return 0;
}
int kenisushu(int n)//判断是否为可逆素数
{
int i;
int sum=0;
i=n;
while(n)
{
sum=sum*10+n%10;
n/=10;
}
if(isPrimer(sum)&&isPrimer(i))
return 1;
else
return 0;
}

二、运行结果:



三、心得体会:对调用函数感觉有些生疏,并且还有一些问题,经过查询的询问后才最终做出来。

四、知识点总结:这道题主要就是要用调用函数来解决问题,这样将会方便很多,并且省时省力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: