C++实验7-素数和回文

原创 2016年06月01日 23:39:42

一、问题及代码


/*  
* 文件名称: homework.cpp 
* 作    者:  万绍良 
* 完成日期: 2016  年 6 月 1 日  
* 版 本 号:v1.0  
* 对任务及求解方法的描述部分: 使用函数及循环结构应对素数和回文;
* 输入描述: 无;
* 问题描述: 找出200以内的素数、回文数、回文素数、可逆素数;
* 程序输出: 200以内的素数、回文数、回文素数、可逆素数;
* 问题分析: 了解如何找出素数和回文;
* 算法设计: 使用函数和循环;
*/
#include<iostream.h>
int isPrimer(int n)//判断是否为素数
{
	int a,b=1;
	for(a=2;a<n;a++)
		if(n%a==0)
		{
			b=0;
			break;
		}
	return b;
}
int isPalindrome(int n) //判断是否为回文
{	
	int m=n,h=0,t=1;
	while(m!=0)	
	{			
			h=h*10+m%10;
			m=m/10;	
	}
	if(h!=n)
		t=0;
	return t;
}
int main()
{
	int i,j=0,m=0,n=0,k=0,p,r;
	int a[80],b[80],c[80],d[80];
	for(i=2;i<300;i++)
	{
		if(isPrimer(i))//素数
		{
			a[j]=i;
			j++;			
			r=i;
			p=0;
			while(r!=0)
			{
				p=p*10+r%10;
				r=r/10;
			}
			if(isPrimer(p))//可逆素数
			{
				d[k++]=i;
			}
		}		
		if(isPalindrome(i))//回文数
		{
			b[m++]=i;
		}
		if(isPrimer(i) && isPalindrome(i))//回文素数
		{
			c[n++]=i;
		}		
	}
	cout<<"300以内的所有素数有:"<<endl;
	for(i=0;i<j;i++)
	{
		cout<<a[i]<<"\t";
		if((i+1)%6==0)
			cout<<endl;
	}
	cout<<endl<<"300以内的所有回文数有:"<<endl;
	for(i=0;i<m;i++)
	{
		cout<<b[i]<<"\t";
		if((i+1)%6==0)
			cout<<endl;
	}
	cout<<endl<<"300以内的所有回文素数有:"<<endl;
	for(i=0;i<n;i++)
	{
		cout<<c[i]<<"\t";
		if((i+1)%6==0)
			cout<<endl;
	}
	cout<<endl<<"300以内的所有可逆素数有:"<<endl;
	for(i=0;i<k;i++)
	{
		cout<<d[i]<<"\t";
		if((i+1)%6==0)
			cout<<endl;
	}
	cout<<endl;
	return 0;
}




二、运行结果




三、心得体会


在使用自己定义的函数时,需要认真检查是否正确;

如果程序很长而又在编译时出错,可以一部分一部分注释掉来检查错误,这样才能更有效率地改正自己的代码。


四、知识点总结


在编写这个程序的过程中很好地学到了如何将一个数倒过来,这是一种非常有用的办法,在应对回文及可逆方面非常实用,可以背下来日后备用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

第七次C++实验-素数和回文

/* * 文件名称: 素数和回文 * 作 者: 石宇建 * 完成日期: 2016年 6月 4 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分:编制2个返回值为int...

数据结构实验 素数 回文

  • 2010-05-26 20:27
  • 738KB
  • 下载

c++回文素数

  • 2013-12-08 12:22
  • 766B
  • 下载

Java实验(3) 回文素数

回文素数指某一个数既是回文数、又是素数,例如2, 3, 5, 7, 11, 101, 131,… 编程找出前100个回文素数,并且要求按照每行10个的格式输出。输出方式任选。 1、本题主...

第11周项目六 回文~素数(7)

问题及代码:

C++刷题——2704: 回文素数

2704: 回文素数 /* Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 ...

有趣的回文素数

什么是回文素数? 回文素数即从左向右读与从右向左读是完全一样的素数,典型的回文素数如下: 11,101,131,151,181,……。 回文素数往往与记数系统的进位值有关。目前,数学家仍无法证明...

HDU 1431 素数回文

有人问我这个问题。 个人感觉暴搜会TLE O(n*sqrt(n))。n=100000000;(判断素数用2~sqrt(n)+1 去除) 还是枚举好了。枚举 1~10000,把他每一位存下来,回文数已知...

项目六,输入数n,输出n以内的回文素数

/* *Copyright (c) 2014 *All rights reserved. *文件名称:main.cpp *作 者:臧云吉 *完成日期:201...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)