纯粹素数

纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。求出所有小于3000的四位的纯粹素数。

Output

按从小到大的顺序输出若干个纯粹素数,每行一个。

思路:一个个枚举就好了。

假设n=1223

判断1223为素数,模1000为223

判断223为素数,模100为23

判断23为素数,模10为3

判断3为素数,1223为素数

CODE:

#include<bits/stdc++.h>
using namespace std;
bool su1(int a) {//判断素数
	bool flag=true;
	for(int i=2; i*i<=a; i++) {
		if(a%i==0) {
			flag=false;
			break;
		}
	}
	if(a==1)
		flag=false;
	return flag;
}
bool su(int sum) {//不断取模
	int b=sum,d=10000;
	bool flag2=true;
	while(d!=0) {
		if(su1(b%d)==false) {
			flag2=false;
			break;
		}
		b%=d;
		d/=10;
	}
	return flag2;
}
int main() {
	for(int i=1000; i<=3000; i++) {
		if(su(i)) {
			cout<<i<<endl;
		}
	}
	return 0;
}

Guess you like

Origin blog.csdn.net/weixin_55599629/article/details/119998479