蓝桥0723-超级素数
#include <cstdio> #include <cstring> #include <iostream> #include <stdio.h> #include <iomanip> using namespace std; int SuShu(int n) { //去除小于2的数 if(n < 2) return 0; for (int i = 2;n >= i * i ;++i) { if(n % i == 0) return 0; } return 1; } int SuperSuShu(int m) { if(!SuShu(m)) { return 0; } while(m != 0) { int mod = m % 10; m -= mod; m /=10; if(m == 0) return 1; if(!SuShu(m)){ return 0; } else { SuperSuShu(m); } } } int main() { int n = 0; cin >> n; int sum = 0; for(int i = 2;i<=n;i++) { if(SuperSuShu(i)) { //cout << i << endl; sum ++; } } cout << sum; return 0; }
用函数来做更清晰,
先判断是否是素数,再判断是否是超级素数,难点在于如何去掉低位数字,保留前几位.