回文数 素数问题。

 /*         
* Copyright (c) 2012, 烟台大学计算机学院         
* All rights reserved.         
* 作 者:  刘同宾       
* 完成日期:2012 年 11 月 16 日         
* 版 本 号:v1.0         
*         
* 输入描述:    编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数,isPalindrome()用于判断参数是否是回文数,调用函数回答以下问题(可以分别编制几个程序完成,也可以在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)

                 (1)输出10000以内的所有素数。
                 (2)输出10000以内的所有回文数。
                 (3)输出10000以内的所有回文素数。    
* 问题描述: 
* 程序输出:
* 问题分析:略        
* 算法设计:略         
*/  


#include<iostream>

#include<cmath>

#include<iomanip>

using namespace std;


int fanxushu(int i);        //函数声明

bool ispalindrome(int i);

bool isprimer(int i);


int main()
{
	int a;
	cout<<"输出10000以内的所有素数:"<<endl;
	for(a=2;a<=10000;++a)
	{
		if(isprimer(a))
		{
			cout<<a<<" ";
		}

	}
	cout<<endl<<endl;


	cout<<"输出10000以内的所有回文数:"<<endl;
	for(a=2;a<=10000;++a)
	{
		if(ispalindrome(a))
		{
			cout<<a<<" ";
		}
	}
	cout<<endl<<endl;



	cout<<"输出10000以内的回文素数:"<<endl;
	for(a=2;a<=10000;++a)
	{
		if(isprimer(a)&&ispalindrome(a))
		{
			cout<<a<<" ";
		}
	}
	cout<<endl<<endl;
	
	return 0;
}


int fanxushu(int i)   //反序数函数
{   
	int l;

	l=0;

	while(i>0)
	{
		l=l*10+i%10;
        i=i/10;
	}
    
	return l;
}


bool ispalindrome(int i)     //回文数函数
{
	int j,l;

	bool palindrome=false;

	j=i;

	l=0;

	while(j>0)
	{
		l=l*10+j%10;
        j=j/10;
	}

	if(i==l)
	{
		palindrome=true;
	}

	return palindrome;
}


bool isprimer(int i)      //素数函数
{
	int j,k;

	bool prime=true;
	k=int(sqrt(i));
	for(j=2;j<=k;++j)
	{
		if(i%j==0)
		{
			prime=false;
			break;
		}
	}

	return prime;
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值