/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:李晓凯
* 完成日期:2014年 11 月 16 日
* 版 本 号:v1.0
*
* 问题描述:根据函数计算并输出1000以内的回文素数
* 输入描述:
* 程序输出:输出1000以内的回文素数
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:李晓凯
* 完成日期:2014年 11 月 16 日
* 版 本 号:v1.0
*
* 问题描述:根据函数计算并输出1000以内的回文素数
* 输入描述:
* 程序输出:输出1000以内的回文素数
*/
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
bool ispalindrome(int );
bool isprimer(int );
int main()
{
int m;
for (m=2;m<=1000;++m)
if(ispalindrome(m)&&isprimer(m))
cout<<m<<" ";
return 0;
}
bool ispalindrome(int n)
{
int t=0,r,j=n;
while(j>0)
{
r=j%10;
t=t*10+r;
j=j/10;
}
return (t==n);
}
bool isprimer(int n)
{
int r;
for (r=2; r<=sqrt(n); ++r)
if(n%r==0)
break;
if(r>sqrt(n))
return n;
}
学习总结:将两个函数并列摆下来,就顺其自然的挑选出了符合情况的数,刚开始在第一个函数中将”return (t==n);"写成了“return n;"结果就没算出来,现在明白要看看是否为回文数,是才能输出,哎╮(╯▽╰)╭,记住!!!