蓝桥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;    
} 

用函数来做更清晰,

先判断是否是素数,再判断是否是超级素数,难点在于如何去掉低位数字,保留前几位.

原文地址:https://www.cnblogs.com/leesymbol/p/13969477.html