上机内容:输出10000以内的回文素数。
上机目的:控制结构综合
我的程序:
运行结果:
上机目的:控制结构综合
我的程序:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 青岛农业大学理信学院
* All rights reserved.
* 文件名称:万以内的回文素数.cpp
* 作 者:幻影行者
* 完成日期:2013 年 7 月 28 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:无
* 问题描述:输出10000以内的回文素数。
* 程序输出:略
* 问题分析:先判断是否素数在判断回文,或先判断回文在判断素数
* 算法设计:略
*/
//法一:先判断素数再判断回文
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int t,m,count=0;
bool prime;
cout<<"万以内的回文素数有:"<<endl;
for(int i=3;i<=10000;++i)
{
prime=true;
for(int j=2;j<=sqrt(i);++j)
{
if(i%j==0)
{
prime=false;
break;
}
}
if(prime) //先判断是否素数
{
t=i;
m=0;
while(t>0)
{
m=m*10+t%10;
t=t/10;
}
if(i==m) //是素数在判断是否回文
{
++count;
cout<<i<<"\t";
if(count%5==0)
cout<<endl;
}
}
}
cout<<"\n共有"<<count<<"个回文素数!"<<endl;
return 0;
}
//法二:先判断回文在判断素数
/*
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i,m,t,count=0;
for(i=1;i<=10000;++i)
{
t=i;
m=0;
while(t>0)
{
m=m*10+t%10;
t=t/10;
}
if(i==m)
{
if(i>=3)
{
bool prime=true;
for(int j=2;j<=sqrt(i);++j)
{
if(i%j==0)
{
prime=false;
break;
}
}
if(prime)
{ ++count;
cout<<i<<"\t";
}
}
}
}
cout<<"\n共有"<<count<<"个回文素数!"<<endl;
return 0;
}*/
运行结果: