1137 - 【入门】纯粹素数
题目描述
纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。求出所有小于3000的四位的纯粹素数。
输入
无
输出
按从小到大的顺序输出若干个纯粹素数,每行一个。
来源
函数问题
标签
代码如下:
#include<bits/stdc++.h>
using namespace std;
bool s(int n);//声明子函数
int main()
{
for(int i=1000;i<3000;i++)
{
if(s(i)&&s(i%1000)&&s(i%100)&&s(i%10))
{
cout<<i<<endl;
}
}
return 0;
}
bool s(int n)
{
bool r=true;//如果没有因数并且n不是1和0,这时返回值为true
int i;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)//判断是否有因数
{
r=false;//有因数就把r标记为false,结束循环
break;
}
}
if(n<=1)//1和0都不是是素数
{
r=false;
}
return r;
}