(1)输入1000以内所有素数
问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 11 月 10 日
* 版 本 号:v1.0
*
* 问题描述:编制main函数,用于判断参数是否为素数 。
* 输入描述:没有输入。
* 程序输出:1000以内所有素数。
*/
#include <iostream>
using namespace std;
bool isPrimer(int x);
int main()
{
for(int m=1;m<=1000;++m)
if(isPrimer(m))
cout<<m<<" ";
return 0;
}
bool isPrimer(int x)
{
if(x<2)
return false;
for(int i=2; i*i<=x; ++i)
{
if(x%i==0)
return false;
}
return true;
}
运行结果:
(2)输入1000以内的所有回文数
问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 11 月 10 日
* 版 本 号:v1.0
*
* 问题描述:编制一个函数isPalindrome(),用于判断参数是否为回文数 。
* 输入描述:没有输入。
* 程序输出:1000以内的所有回文数。
*/
#include <iostream>
using namespace std;
bool isPalindrome(int x);
int main()
{
for(int m=0;m<=1000;++m)
if(isPalindrome(m))
cout<<m<<" ";
return 0;
}
bool isPalindrome(int x)
{
int m=0,r,hui;
hui=x;
for(; x>0; x=x/10)
{
r=x%10;
m=m*10+r;
}
if(hui==m)
return true;
else
return false;
}
运行结果:
(3)输出1000以内所有回文素数
问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 11 月 10 日
* 版 本 号:v1.0
*
* 问题描述:判断参数是否为回文素数 。
* 输入描述:没有输入。
* 程序输出:1000以内的所有回文素数。
*/
#include <iostream>
using namespace std;
bool isPalindrome(int x);
int main()
{
for(int m=0; m<=1000; ++m)
if(isPalindrome(m))
cout<<m<<" ";
return 0;
}
bool isPalindrome(int x)
{
int m=0,r,hui;
hui=x;
for(; x>0; x=x/10)
{
r=x%10;
m=m*10+r;
}
if(hui==m)
{
if(hui<2)
return false;
for(int i=2; i*i<=hui; ++i)
{
if(hui%i==0)
return false;
}
return true;
}
else
return false;
}
运行结果:
(4)求10000以内所有的所有可逆素数
问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 11 月 10 日
* 版 本 号:v1.0
*
* 问题描述:判断参数是否为回文素数 。
* 输入描述:没有输入。
* 程序输出:10000以内的所有可逆素数。
*/
#include <iostream>
using namespace std;
int reverse(int x);
bool isPrimer(int x);
int main()
{
int n;
cout<<"1000以内所有可逆素数为";
for(int m=0; m<=10000; ++m)
{
if(isPrimer(m))
{
n=reverse(m);
if(isPrimer(n))
cout<<m<<" ";
}
}
return 0;
}
int reverse(int x)
{
int m=0,r;
for(; x>0; x=x/10)
{
r=x%10;
m=m*10+r;
}
return m;
}
bool isPrimer(int x)
{
if(x<2)
return false;
for(int i=2; i*i<=x; ++i)
{
if(x%i==0)
return false;
}
return true;
}
运行结果:
(5)多文件版